diff --git a/CHANGELOG.md b/CHANGELOG.md index 57a46b50951..418cab91650 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -321,8 +321,6 @@ Released with 1.0.0-beta.37 code base. - Update `dist` to latest release (`1.3.2`) (#3875) -## [Unreleased] - ## [1.3.4] ### Changed @@ -350,3 +348,7 @@ Released with 1.0.0-beta.37 code base. - Add `ETH2Core` class export to `index.d.ts` for `web3-eth2-core` (#3878) - Deprecation of bzz warning (#3872) - Deprecation of shh warning (#3888) + +## [Unreleased] + +## [1.3.5] diff --git a/dist/web3.min.js b/dist/web3.min.js index 60afd269691..f651d01ff6f 100644 --- a/dist/web3.min.js +++ b/dist/web3.min.js @@ -1,24 +1,24 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Web3=t():e.Web3=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=213)}([function(e,t,r){"use strict";e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,r){"use strict";function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=n=function(e){return typeof e}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(t)}e.exports=n},function(e,t,r){"use strict";(function(e){ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Web3=e():t.Web3=e()}(window,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=197)}([function(t,e,r){"use strict";t.exports=function(t){return t&&t.__esModule?t:{default:t}}},function(t,e,r){"use strict";function n(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=n=function(t){return typeof t}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(e)}t.exports=n},function(t,e,r){"use strict";(function(t){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var n=r(220),i=r(221),o=r(109);function a(){return f.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function p(e,t){if(f.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return D(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return z(e).length;default:if(n)return D(e).length;t=(""+t).toLowerCase(),n=!0}}function b(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,r);case"utf8":case"utf-8":return M(this,t,r);case"ascii":return x(this,t,r);case"latin1":case"binary":return I(this,t,r);case"base64":return E(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function m(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function v(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=f.from(t,n)),f.isBuffer(t))return 0===t.length?-1:y(e,t,r,n,i);if("number"==typeof t)return t&=255,f.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):y(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,r,n,i){var o,a=1,s=e.length,f=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,f/=2,r/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var c=-1;for(o=r;os&&(r=s-f),o=r;o>=0;o--){for(var h=!0,d=0;di&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function E(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function M(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:u>223?3:u>191?2:1;if(i+h<=r)switch(h){case 1:u<128&&(c=u);break;case 2:128==(192&(o=e[i+1]))&&(f=(31&u)<<6|63&o)>127&&(c=f);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(f=(15&u)<<12|(63&o)<<6|63&a)>2047&&(f<55296||f>57343)&&(c=f);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(f=(15&u)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&f<1114112&&(c=f)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=h}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},f.prototype.compare=function(e,t,r,n,i){if(!f.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),u=this.slice(n,i),c=e.slice(t,r),h=0;hi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return g(this,e,t,r);case"utf8":case"utf-8":return w(this,e,t,r);case"ascii":return _(this,e,t,r);case"latin1":case"binary":return k(this,e,t,r);case"base64":return A(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},f.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function x(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,r,n,i,o){if(!f.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function U(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function C(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function B(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function T(e,t,r,n,o){return o||B(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function j(e,t,r,n,o){return o||B(e,0,r,8),i.write(e,t,r,n,52,8),r+8}f.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},f.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},f.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},f.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},f.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},f.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},f.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},f.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||O(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},f.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},f.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},f.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},f.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},f.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},f.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),i.read(this,e,!0,23,4)},f.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),i.read(this,e,!1,23,4)},f.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),i.read(this,e,!0,52,8)},f.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),i.read(this,e,!1,52,8)},f.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||R(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},f.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,1,255,0),f.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},f.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},f.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,2,65535,0),f.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},f.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):C(this,e,t,!0),t+4},f.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,4,4294967295,0),f.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):C(this,e,t,!1),t+4},f.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);R(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},f.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);R(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},f.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,1,127,-128),f.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},f.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},f.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,2,32767,-32768),f.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},f.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,4,2147483647,-2147483648),f.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):C(this,e,t,!0),t+4},f.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||R(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),f.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):C(this,e,t,!1),t+4},f.prototype.writeFloatLE=function(e,t,r){return T(this,e,t,!0,r)},f.prototype.writeFloatBE=function(e,t,r){return T(this,e,t,!1,r)},f.prototype.writeDoubleLE=function(e,t,r){return j(this,e,t,!0,r)},f.prototype.writeDoubleBE=function(e,t,r){return j(this,e,t,!1,r)},f.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!f.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function z(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(L,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}}).call(this,r(8))},function(e,t,r){"use strict";"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},function(e,t,r){"use strict";(function(e){var t=r(0)(r(1));!function(e,n){function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function a(e,t,r){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"===(0,t.default)(e)?e.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=r(224).Buffer}catch(e){}function f(e,t,r){for(var n=0,i=Math.min(e.length,r),o=t;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(e,t,r,n){for(var i=0,o=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(e){return e instanceof a||null!==e&&"object"===(0,t.default)(e)&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,r,n){if("number"==typeof e)return this._initNumber(e,r,n);if("object"===(0,t.default)(e))return this._initArray(e,r,n);"hex"===r&&(r=16),i(r===(0|r)&&r>=2&&r<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&o++,16===r?this._parseHex(e,o):this._parseBase(e,r,o),"-"===e[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),r,n)},a.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(i(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},a.prototype._initArray=function(e,t,r){if(i("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=6)i=f(e,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==t&&(i=f(e,t,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,a=o%n,s=Math.min(o,o-a)+r,f=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],a=i*o,s=67108863&a,f=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,h=67108863&f,d=Math.min(u,t.length-1),l=Math.max(0,u-e.length+1);l<=d;l++){var p=u-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.words[l])+h)/67108864|0,h=67108863&a}r.words[u]=0|h,f=0|c}return 0!==f?r.words[u]=0|f:r.length--,r.strip()}a.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?c[6-f.length]+f+r:f+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var u=h[e],l=d[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(e);r=(p=p.idivn(l)).isZero()?b+r:c[u-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return i(void 0!==s),this.toArrayLike(s,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,f="le"===t,u=new e(o),c=this.clone();if(f){for(s=0;!c.isZero();s++)a=c.andln(255),c.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==o&&a>26,this.words[a]=67108863&t;if(0===o&&a>>13,l=0|a[1],p=8191&l,b=l>>>13,m=0|a[2],v=8191&m,y=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],A=8191&k,S=k>>>13,E=0|a[5],M=8191&E,x=E>>>13,I=0|a[6],P=8191&I,N=I>>>13,O=0|a[7],R=8191&O,U=O>>>13,C=0|a[8],B=8191&C,T=C>>>13,j=0|a[9],L=8191&j,F=j>>>13,D=0|s[0],z=8191&D,q=D>>>13,H=0|s[1],K=8191&H,V=H>>>13,G=0|s[2],W=8191&G,$=G>>>13,Y=0|s[3],Z=8191&Y,J=Y>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,ie=0|s[6],oe=8191&ie,ae=ie>>>13,se=0|s[7],fe=8191&se,ue=se>>>13,ce=0|s[8],he=8191&ce,de=ce>>>13,le=0|s[9],pe=8191&le,be=le>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(h,z))|0)+((8191&(i=(i=Math.imul(h,q))+Math.imul(d,z)|0))<<13)|0;u=((o=Math.imul(d,q))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,z),i=(i=Math.imul(p,q))+Math.imul(b,z)|0,o=Math.imul(b,q);var ve=(u+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(d,K)|0))<<13)|0;u=((o=o+Math.imul(d,V)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,z),i=(i=Math.imul(v,q))+Math.imul(y,z)|0,o=Math.imul(y,q),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var ye=(u+(n=n+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,$)|0)+Math.imul(d,W)|0))<<13)|0;u=((o=o+Math.imul(d,$)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,z),i=(i=Math.imul(w,q))+Math.imul(_,z)|0,o=Math.imul(_,q),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,$)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,$)|0;var ge=(u+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,Z)|0))<<13)|0;u=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(A,z),i=(i=Math.imul(A,q))+Math.imul(S,z)|0,o=Math.imul(S,q),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(v,W)|0,i=(i=i+Math.imul(v,$)|0)+Math.imul(y,W)|0,o=o+Math.imul(y,$)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,Z)|0,o=o+Math.imul(b,J)|0;var we=(u+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;u=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(M,z),i=(i=Math.imul(M,q))+Math.imul(x,z)|0,o=Math.imul(x,q),n=n+Math.imul(A,K)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(w,W)|0,i=(i=i+Math.imul(w,$)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,$)|0,n=n+Math.imul(v,Z)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,J)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,ee)|0;var _e=(u+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;u=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,z),i=(i=Math.imul(P,q))+Math.imul(N,z)|0,o=Math.imul(N,q),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,$)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,$)|0,n=n+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,Z)|0,o=o+Math.imul(_,J)|0,n=n+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,ee)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0;var ke=(u+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;u=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(R,z),i=(i=Math.imul(R,q))+Math.imul(U,z)|0,o=Math.imul(U,q),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,V)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,V)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,$)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,$)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,J)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,i=(i=i+Math.imul(v,ne)|0)+Math.imul(y,re)|0,o=o+Math.imul(y,ne)|0,n=n+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,ae)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,ae)|0;var Ae=(u+(n=n+Math.imul(h,fe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ue)|0)+Math.imul(d,fe)|0))<<13)|0;u=((o=o+Math.imul(d,ue)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(B,z),i=(i=Math.imul(B,q))+Math.imul(T,z)|0,o=Math.imul(T,q),n=n+Math.imul(R,K)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,V)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,$)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,$)|0,n=n+Math.imul(M,Z)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(v,oe)|0,i=(i=i+Math.imul(v,ae)|0)+Math.imul(y,oe)|0,o=o+Math.imul(y,ae)|0,n=n+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,ue)|0)+Math.imul(b,fe)|0,o=o+Math.imul(b,ue)|0;var Se=(u+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;u=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,z),i=(i=Math.imul(L,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(B,K)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(R,W)|0,i=(i=i+Math.imul(R,$)|0)+Math.imul(U,W)|0,o=o+Math.imul(U,$)|0,n=n+Math.imul(P,Z)|0,i=(i=i+Math.imul(P,J)|0)+Math.imul(N,Z)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,ae)|0,n=n+Math.imul(v,fe)|0,i=(i=i+Math.imul(v,ue)|0)+Math.imul(y,fe)|0,o=o+Math.imul(y,ue)|0,n=n+Math.imul(p,he)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(b,he)|0,o=o+Math.imul(b,de)|0;var Ee=(u+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;u=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(F,K)|0,o=Math.imul(F,V),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,$)|0)+Math.imul(T,W)|0,o=o+Math.imul(T,$)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,J)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,ue)|0)+Math.imul(_,fe)|0,o=o+Math.imul(_,ue)|0,n=n+Math.imul(v,he)|0,i=(i=i+Math.imul(v,de)|0)+Math.imul(y,he)|0,o=o+Math.imul(y,de)|0;var Me=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;u=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,$))+Math.imul(F,W)|0,o=Math.imul(F,$),n=n+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(N,re)|0,o=o+Math.imul(N,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,ae)|0,n=n+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,ue)|0)+Math.imul(S,fe)|0,o=o+Math.imul(S,ue)|0,n=n+Math.imul(w,he)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,he)|0,o=o+Math.imul(_,de)|0;var xe=(u+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;u=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(F,Z)|0,o=Math.imul(F,J),n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(N,oe)|0,o=o+Math.imul(N,ae)|0,n=n+Math.imul(M,fe)|0,i=(i=i+Math.imul(M,ue)|0)+Math.imul(x,fe)|0,o=o+Math.imul(x,ue)|0,n=n+Math.imul(A,he)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Ie=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;u=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(F,Q)|0,o=Math.imul(F,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(P,fe)|0,i=(i=i+Math.imul(P,ue)|0)+Math.imul(N,fe)|0,o=o+Math.imul(N,ue)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(x,he)|0,o=o+Math.imul(x,de)|0;var Pe=(u+(n=n+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,be)|0)+Math.imul(S,pe)|0))<<13)|0;u=((o=o+Math.imul(S,be)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),i=(i=Math.imul(L,ne))+Math.imul(F,re)|0,o=Math.imul(F,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(R,fe)|0,i=(i=i+Math.imul(R,ue)|0)+Math.imul(U,fe)|0,o=o+Math.imul(U,ue)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(N,he)|0,o=o+Math.imul(N,de)|0;var Ne=(u+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(x,pe)|0))<<13)|0;u=((o=o+Math.imul(x,be)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(F,oe)|0,o=Math.imul(F,ae),n=n+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,ue)|0)+Math.imul(T,fe)|0,o=o+Math.imul(T,ue)|0,n=n+Math.imul(R,he)|0,i=(i=i+Math.imul(R,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Oe=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(N,pe)|0))<<13)|0;u=((o=o+Math.imul(N,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,fe),i=(i=Math.imul(L,ue))+Math.imul(F,fe)|0,o=Math.imul(F,ue),n=n+Math.imul(B,he)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var Re=(u+(n=n+Math.imul(R,pe)|0)|0)+((8191&(i=(i=i+Math.imul(R,be)|0)+Math.imul(U,pe)|0))<<13)|0;u=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(F,he)|0,o=Math.imul(F,de);var Ue=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,be)|0)+Math.imul(T,pe)|0))<<13)|0;u=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ue>>>26)|0,Ue&=67108863;var Ce=(u+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(F,pe)|0))<<13)|0;return u=((o=Math.imul(F,be))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,f[0]=me,f[1]=ve,f[2]=ye,f[3]=ge,f[4]=we,f[5]=_e,f[6]=ke,f[7]=Ae,f[8]=Se,f[9]=Ee,f[10]=Me,f[11]=xe,f[12]=Ie,f[13]=Pe,f[14]=Ne,f[15]=Oe,f[16]=Re,f[17]=Ue,f[18]=Ce,0!==u&&(f[19]=u,r.length++),r};function b(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(p=l),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):r<63?l(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,e,t):b(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*t;a>=26,t+=n/67108864|0,t+=o>>>26,this.words[r]=67108863&o}return 0!==t&&(this.words[r]=t,this.length++),this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>i}return t}(e);if(0===t.length)return new a(1);for(var r=this,n=0;n=0);var t,r=e%26,n=(e-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0),n=t?(t-t%26)/26:0;var o=e%26,a=Math.min((e-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,u=0;u=0&&(0!==c||u>=n);u--){var h=0|this.words[u];this.words[u]=c<<26-o|h>>>o,c=h&s}return f&&0!==c&&(f.words[f.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(f/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,f=n.length-i.length;if("mod"!==t){(s=new a(null)).length=f+1,s.words=new Array(s.length);for(var u=0;u=0;h--){var d=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(i,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=d)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(n=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var n,o,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){i(e<=67108863);for(var t=(1<<26)%e,r=0,n=this.length-1;n>=0;n--)r=(t*r+(0|this.words[n]))%e;return r},a.prototype.idivn=function(e){i(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*t;this.words[r]=n/e|0,t=n%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new a(1),o=new a(0),s=new a(0),f=new a(1),u=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++u;for(var c=r.clone(),h=t.clone();!t.isZero();){for(var d=0,l=1;0==(t.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(c),o.isub(h)),n.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||f.isOdd())&&(s.iadd(c),f.isub(h)),s.iushrn(1),f.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(f)):(r.isub(t),s.isub(n),f.isub(o))}return{a:s,b:f,gcd:r.iushln(u)}},a.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new a(1),s=new a(0),f=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(t.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(t.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(f),o.iushrn(1);for(var h=0,d=1;0==(r.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(f),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(n=0===t.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(e),n},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:ne.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){ni&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new A(e)},a.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function y(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},y.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(e,t){e.iushrn(this.n,0,t)},y.prototype.imulK=function(e){return e.imul(this.k)},o(g,y),g.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n>>22,i=o}i>>>=22,e.words[n-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},g.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new g;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new k}return v[e]=t,t},A.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new a(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),f=s.redNeg(),u=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,u).cmp(f);)c.redIAdd(f);for(var h=this.pow(c,n),d=this.pow(e,n.addn(1).iushrn(1)),l=this.pow(e,n),p=o;0!==l.cmp(s);){for(var b=l,m=0;0!==b.cmp(s);m++)b=b.redSqr();i(m=0;n--){for(var u=t.words[n],c=f-1;c>=0;c--){var h=u>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}f=26}return i},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new S(e)},o(S,A),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e)}).call(this,r(16)(e))},function(e,t,r){"use strict";var n=r(2),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function a(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,t),t.Buffer=a),o(i,a),a.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},a.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,r){"use strict";function n(e,t){for(var r=0;r1)for(var r=1;r=0&&t<=x};y.each=y.forEach=function(e,t,r){var n,i;if(t=w(t,r),P(e))for(n=0,i=e.length;n0?0:a-1;for(i||(n=t[o?o[s]:s],s+=e);s>=0&&s=3;return t(e,w(r,i,4),n,o)}};y.reduce=y.foldl=y.inject=N(1),y.reduceRight=y.foldr=N(-1),y.find=y.detect=function(e,t,r){var n=(P(e)?y.findIndex:y.findKey)(e,t,r);if(void 0!==n&&-1!==n)return e[n]},y.filter=y.select=function(e,t,r){var n=[];return t=_(t,r),y.each(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n},y.reject=function(e,t,r){return y.filter(e,y.negate(_(t)),r)},y.every=y.all=function(e,t,r){t=_(t,r);for(var n=!P(e)&&y.keys(e),i=(n||e).length,o=0;o=0},y.invoke=k((function(e,t,r){var n,i;return y.isFunction(t)?i=t:y.isArray(t)&&(n=t.slice(0,-1),t=t[t.length-1]),y.map(e,(function(e){var o=i;if(!o){if(n&&n.length&&(e=M(e,n)),null==e)return;o=e[t]}return null==o?o:o.apply(e,r)}))})),y.pluck=function(e,t){return y.map(e,y.property(t))},y.where=function(e,t){return y.filter(e,y.matcher(t))},y.findWhere=function(e,t){return y.find(e,y.matcher(t))},y.max=function(e,t,r){var n,i,a=-1/0,s=-1/0;if(null==t||"number"==typeof t&&"object"!=(0,o.default)(e[0])&&null!=e)for(var f=0,u=(e=P(e)?e:y.values(e)).length;fa&&(a=n);else t=_(t,r),y.each(e,(function(e,r,n){((i=t(e,r,n))>s||i===-1/0&&a===-1/0)&&(a=e,s=i)}));return a},y.min=function(e,t,r){var n,i,a=1/0,s=1/0;if(null==t||"number"==typeof t&&"object"!=(0,o.default)(e[0])&&null!=e)for(var f=0,u=(e=P(e)?e:y.values(e)).length;fn||void 0===r)return 1;if(r0?0:i-1;o>=0&&o0?a=o>=0?o:Math.max(o+s,a):s=o>=0?Math.min(o+1,s):o+s+1;else if(r&&o&&s)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=t(h.call(n,a,s),y.isNaN))>=0?o+a:-1;for(o=e>0?a:s-1;o>=0&&ot?(n&&(clearTimeout(n),n=null),s=u,a=e.apply(i,o),n||(i=o=null)):n||!1===r.trailing||(n=setTimeout(f,c)),a};return u.cancel=function(){clearTimeout(n),s=0,n=i=o=null},u},y.debounce=function(e,t,r){var n,i,o=function(t,r){n=null,r&&(i=e.apply(t,r))},a=k((function(a){if(n&&clearTimeout(n),r){var s=!n;n=setTimeout(o,t),s&&(i=e.apply(this,a))}else n=y.delay(o,t,this,a);return i}));return a.cancel=function(){clearTimeout(n),n=null},a},y.wrap=function(e,t){return y.partial(t,e)},y.negate=function(e){return function(){return!e.apply(this,arguments)}},y.compose=function(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}},y.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},y.before=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}},y.once=y.partial(y.before,2),y.restArguments=k;var j=!{toString:null}.propertyIsEnumerable("toString"),L=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],F=function(e,t){var r=L.length,n=e.constructor,i=y.isFunction(n)&&n.prototype||f,o="constructor";for(E(e,o)&&!y.contains(t,o)&&t.push(o);r--;)(o=L[r])in e&&e[o]!==i[o]&&!y.contains(t,o)&&t.push(o)};y.keys=function(e){if(!y.isObject(e))return[];if(b)return b(e);var t=[];for(var r in e)E(e,r)&&t.push(r);return j&&F(e,t),t},y.allKeys=function(e){if(!y.isObject(e))return[];var t=[];for(var r in e)t.push(r);return j&&F(e,t),t},y.values=function(e){for(var t=y.keys(e),r=t.length,n=Array(r),i=0;i1&&(n=w(n,t[1])),t=y.allKeys(e)):(n=H,t=U(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i1&&(r=t[1])):(t=y.map(U(t,!1,!1),String),n=function(e,r){return!y.contains(t,r)}),y.pick(e,n,r)})),y.defaults=D(y.allKeys,!0),y.create=function(e,t){var r=A(e);return t&&y.extendOwn(r,t),r},y.clone=function(e){return y.isObject(e)?y.isArray(e)?e.slice():y.extend({},e):e},y.tap=function(e,t){return t(e),e},y.isMatch=function(e,t){var r=y.keys(t),n=r.length;if(null==e)return!n;for(var i=Object(e),o=0;o":">",'"':""","'":"'","`":"`"},G=y.invert(V),W=function(e){var t=function(t){return e[t]},r="(?:"+y.keys(e).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(e){return e=null==e?"":""+e,n.test(e)?e.replace(i,t):e}};y.escape=W(V),y.unescape=W(G),y.result=function(e,t,r){y.isArray(t)||(t=[t]);var n=t.length;if(!n)return y.isFunction(r)?r.call(e):r;for(var i=0;i/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var Y=/(.)^/,Z={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},J=/\\|'|\r|\n|\u2028|\u2029/g,X=function(e){return"\\"+Z[e]};y.template=function(e,t,r){!t&&r&&(t=r),t=y.defaults({},t,y.templateSettings);var n,i=RegExp([(t.escape||Y).source,(t.interpolate||Y).source,(t.evaluate||Y).source].join("|")+"|$","g"),o=0,a="__p+='";e.replace(i,(function(t,r,n,i,s){return a+=e.slice(o,s).replace(J,X),o=s+t.length,r?a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?a+="'+\n((__t=("+n+"))==null?'':__t)+\n'":i&&(a+="';\n"+i+"\n__p+='"),t})),a+="';\n",t.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{n=new Function(t.variable||"obj","_",a)}catch(e){throw e.source=a,e}var s=function(e){return n.call(this,e,y)},f=t.variable||"obj";return s.source="function("+f+"){\n"+a+"}",s},y.chain=function(e){var t=y(e);return t._chain=!0,t};var Q=function(e,t){return e._chain?y(t).chain():t};y.mixin=function(e){return y.each(y.functions(e),(function(t){var r=y[t]=e[t];y.prototype[t]=function(){var e=[this._wrapped];return c.apply(e,arguments),Q(this,r.apply(y,e))}})),y},y.mixin(y),y.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=s[e];y.prototype[e]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==e&&"splice"!==e||0!==r.length||delete r[0],Q(this,r)}})),y.each(["concat","join","slice"],(function(e){var t=s[e];y.prototype[e]=function(){return Q(this,t.apply(this._wrapped,arguments))}})),y.prototype.value=function(){return this._wrapped},y.prototype.valueOf=y.prototype.toJSON=y.prototype.value,y.prototype.toString=function(){return String(this._wrapped)},void 0===(i=function(){return y}.apply(t,[]))||(n.exports=i)}()}).call(this,r(8),r(16)(e))},function(e,t,r){"use strict";"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},function(e,t,r){"use strict";var n=r(2),i=n.Buffer;function o(e,t){for(var r in e)t[r]=e[r]}function a(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(o(n,t),t.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},a.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";(function(e){var t=r(0)(r(1));!function(e,n){function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function a(e,t,r){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"===(0,t.default)(e)?e.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=r(470).Buffer}catch(e){}function f(e,t,r){for(var n=0,i=Math.min(e.length,r),o=t;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(e,t,r,n){for(var i=0,o=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(e){return e instanceof a||null!==e&&"object"===(0,t.default)(e)&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,r,n){if("number"==typeof e)return this._initNumber(e,r,n);if("object"===(0,t.default)(e))return this._initArray(e,r,n);"hex"===r&&(r=16),i(r===(0|r)&&r>=2&&r<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&o++,16===r?this._parseHex(e,o):this._parseBase(e,r,o),"-"===e[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),r,n)},a.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(i(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},a.prototype._initArray=function(e,t,r){if(i("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=6)i=f(e,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==t&&(i=f(e,t,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,a=o%n,s=Math.min(o,o-a)+r,f=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],a=i*o,s=67108863&a,f=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,h=67108863&f,d=Math.min(u,t.length-1),l=Math.max(0,u-e.length+1);l<=d;l++){var p=u-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.words[l])+h)/67108864|0,h=67108863&a}r.words[u]=0|h,f=0|c}return 0!==f?r.words[u]=0|f:r.length--,r.strip()}a.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?c[6-f.length]+f+r:f+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var u=h[e],l=d[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(e);r=(p=p.idivn(l)).isZero()?b+r:c[u-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return i(void 0!==s),this.toArrayLike(s,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,f="le"===t,u=new e(o),c=this.clone();if(f){for(s=0;!c.isZero();s++)a=c.andln(255),c.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==o&&a>26,this.words[a]=67108863&t;if(0===o&&a>>13,l=0|a[1],p=8191&l,b=l>>>13,m=0|a[2],v=8191&m,y=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],A=8191&k,S=k>>>13,E=0|a[5],M=8191&E,x=E>>>13,I=0|a[6],P=8191&I,N=I>>>13,O=0|a[7],R=8191&O,U=O>>>13,C=0|a[8],B=8191&C,T=C>>>13,j=0|a[9],L=8191&j,F=j>>>13,D=0|s[0],z=8191&D,q=D>>>13,H=0|s[1],K=8191&H,V=H>>>13,G=0|s[2],W=8191&G,$=G>>>13,Y=0|s[3],Z=8191&Y,J=Y>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,ie=0|s[6],oe=8191&ie,ae=ie>>>13,se=0|s[7],fe=8191&se,ue=se>>>13,ce=0|s[8],he=8191&ce,de=ce>>>13,le=0|s[9],pe=8191&le,be=le>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(h,z))|0)+((8191&(i=(i=Math.imul(h,q))+Math.imul(d,z)|0))<<13)|0;u=((o=Math.imul(d,q))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,z),i=(i=Math.imul(p,q))+Math.imul(b,z)|0,o=Math.imul(b,q);var ve=(u+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(d,K)|0))<<13)|0;u=((o=o+Math.imul(d,V)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,z),i=(i=Math.imul(v,q))+Math.imul(y,z)|0,o=Math.imul(y,q),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var ye=(u+(n=n+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,$)|0)+Math.imul(d,W)|0))<<13)|0;u=((o=o+Math.imul(d,$)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,z),i=(i=Math.imul(w,q))+Math.imul(_,z)|0,o=Math.imul(_,q),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,$)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,$)|0;var ge=(u+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,Z)|0))<<13)|0;u=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(A,z),i=(i=Math.imul(A,q))+Math.imul(S,z)|0,o=Math.imul(S,q),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(v,W)|0,i=(i=i+Math.imul(v,$)|0)+Math.imul(y,W)|0,o=o+Math.imul(y,$)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,Z)|0,o=o+Math.imul(b,J)|0;var we=(u+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;u=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(M,z),i=(i=Math.imul(M,q))+Math.imul(x,z)|0,o=Math.imul(x,q),n=n+Math.imul(A,K)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(w,W)|0,i=(i=i+Math.imul(w,$)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,$)|0,n=n+Math.imul(v,Z)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,J)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,ee)|0;var _e=(u+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;u=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,z),i=(i=Math.imul(P,q))+Math.imul(N,z)|0,o=Math.imul(N,q),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,$)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,$)|0,n=n+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,Z)|0,o=o+Math.imul(_,J)|0,n=n+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,ee)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0;var ke=(u+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;u=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(R,z),i=(i=Math.imul(R,q))+Math.imul(U,z)|0,o=Math.imul(U,q),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,V)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,V)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,$)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,$)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,J)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,i=(i=i+Math.imul(v,ne)|0)+Math.imul(y,re)|0,o=o+Math.imul(y,ne)|0,n=n+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,ae)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,ae)|0;var Ae=(u+(n=n+Math.imul(h,fe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ue)|0)+Math.imul(d,fe)|0))<<13)|0;u=((o=o+Math.imul(d,ue)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(B,z),i=(i=Math.imul(B,q))+Math.imul(T,z)|0,o=Math.imul(T,q),n=n+Math.imul(R,K)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,V)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,$)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,$)|0,n=n+Math.imul(M,Z)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(v,oe)|0,i=(i=i+Math.imul(v,ae)|0)+Math.imul(y,oe)|0,o=o+Math.imul(y,ae)|0,n=n+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,ue)|0)+Math.imul(b,fe)|0,o=o+Math.imul(b,ue)|0;var Se=(u+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;u=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,z),i=(i=Math.imul(L,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(B,K)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(R,W)|0,i=(i=i+Math.imul(R,$)|0)+Math.imul(U,W)|0,o=o+Math.imul(U,$)|0,n=n+Math.imul(P,Z)|0,i=(i=i+Math.imul(P,J)|0)+Math.imul(N,Z)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,ae)|0,n=n+Math.imul(v,fe)|0,i=(i=i+Math.imul(v,ue)|0)+Math.imul(y,fe)|0,o=o+Math.imul(y,ue)|0,n=n+Math.imul(p,he)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(b,he)|0,o=o+Math.imul(b,de)|0;var Ee=(u+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;u=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(F,K)|0,o=Math.imul(F,V),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,$)|0)+Math.imul(T,W)|0,o=o+Math.imul(T,$)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,J)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,ue)|0)+Math.imul(_,fe)|0,o=o+Math.imul(_,ue)|0,n=n+Math.imul(v,he)|0,i=(i=i+Math.imul(v,de)|0)+Math.imul(y,he)|0,o=o+Math.imul(y,de)|0;var Me=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;u=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,$))+Math.imul(F,W)|0,o=Math.imul(F,$),n=n+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(N,re)|0,o=o+Math.imul(N,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,ae)|0,n=n+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,ue)|0)+Math.imul(S,fe)|0,o=o+Math.imul(S,ue)|0,n=n+Math.imul(w,he)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,he)|0,o=o+Math.imul(_,de)|0;var xe=(u+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;u=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(F,Z)|0,o=Math.imul(F,J),n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(N,oe)|0,o=o+Math.imul(N,ae)|0,n=n+Math.imul(M,fe)|0,i=(i=i+Math.imul(M,ue)|0)+Math.imul(x,fe)|0,o=o+Math.imul(x,ue)|0,n=n+Math.imul(A,he)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Ie=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;u=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(F,Q)|0,o=Math.imul(F,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(P,fe)|0,i=(i=i+Math.imul(P,ue)|0)+Math.imul(N,fe)|0,o=o+Math.imul(N,ue)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(x,he)|0,o=o+Math.imul(x,de)|0;var Pe=(u+(n=n+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,be)|0)+Math.imul(S,pe)|0))<<13)|0;u=((o=o+Math.imul(S,be)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),i=(i=Math.imul(L,ne))+Math.imul(F,re)|0,o=Math.imul(F,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(R,fe)|0,i=(i=i+Math.imul(R,ue)|0)+Math.imul(U,fe)|0,o=o+Math.imul(U,ue)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(N,he)|0,o=o+Math.imul(N,de)|0;var Ne=(u+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(x,pe)|0))<<13)|0;u=((o=o+Math.imul(x,be)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(F,oe)|0,o=Math.imul(F,ae),n=n+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,ue)|0)+Math.imul(T,fe)|0,o=o+Math.imul(T,ue)|0,n=n+Math.imul(R,he)|0,i=(i=i+Math.imul(R,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Oe=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(N,pe)|0))<<13)|0;u=((o=o+Math.imul(N,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,fe),i=(i=Math.imul(L,ue))+Math.imul(F,fe)|0,o=Math.imul(F,ue),n=n+Math.imul(B,he)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var Re=(u+(n=n+Math.imul(R,pe)|0)|0)+((8191&(i=(i=i+Math.imul(R,be)|0)+Math.imul(U,pe)|0))<<13)|0;u=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(F,he)|0,o=Math.imul(F,de);var Ue=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,be)|0)+Math.imul(T,pe)|0))<<13)|0;u=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ue>>>26)|0,Ue&=67108863;var Ce=(u+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(F,pe)|0))<<13)|0;return u=((o=Math.imul(F,be))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,f[0]=me,f[1]=ve,f[2]=ye,f[3]=ge,f[4]=we,f[5]=_e,f[6]=ke,f[7]=Ae,f[8]=Se,f[9]=Ee,f[10]=Me,f[11]=xe,f[12]=Ie,f[13]=Pe,f[14]=Ne,f[15]=Oe,f[16]=Re,f[17]=Ue,f[18]=Ce,0!==u&&(f[19]=u,r.length++),r};function b(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(p=l),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):r<63?l(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,e,t):b(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*t;a>=26,t+=n/67108864|0,t+=o>>>26,this.words[r]=67108863&o}return 0!==t&&(this.words[r]=t,this.length++),this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>i}return t}(e);if(0===t.length)return new a(1);for(var r=this,n=0;n=0);var t,r=e%26,n=(e-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0),n=t?(t-t%26)/26:0;var o=e%26,a=Math.min((e-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,u=0;u=0&&(0!==c||u>=n);u--){var h=0|this.words[u];this.words[u]=c<<26-o|h>>>o,c=h&s}return f&&0!==c&&(f.words[f.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(f/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,f=n.length-i.length;if("mod"!==t){(s=new a(null)).length=f+1,s.words=new Array(s.length);for(var u=0;u=0;h--){var d=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(i,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=d)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(n=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var n,o,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){i(e<=67108863);for(var t=(1<<26)%e,r=0,n=this.length-1;n>=0;n--)r=(t*r+(0|this.words[n]))%e;return r},a.prototype.idivn=function(e){i(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*t;this.words[r]=n/e|0,t=n%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new a(1),o=new a(0),s=new a(0),f=new a(1),u=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++u;for(var c=r.clone(),h=t.clone();!t.isZero();){for(var d=0,l=1;0==(t.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(c),o.isub(h)),n.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||f.isOdd())&&(s.iadd(c),f.isub(h)),s.iushrn(1),f.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(f)):(r.isub(t),s.isub(n),f.isub(o))}return{a:s,b:f,gcd:r.iushln(u)}},a.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new a(1),s=new a(0),f=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(t.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(t.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(f),o.iushrn(1);for(var h=0,d=1;0==(r.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(f),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(n=0===t.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(e),n},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:ne.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){ni&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new A(e)},a.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function y(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},y.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):r.strip(),r},y.prototype.split=function(e,t){e.iushrn(this.n,0,t)},y.prototype.imulK=function(e){return e.imul(this.k)},o(g,y),g.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n>>22,i=o}i>>>=22,e.words[n-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},g.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new g;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new k}return v[e]=t,t},A.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new a(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),f=s.redNeg(),u=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,u).cmp(f);)c.redIAdd(f);for(var h=this.pow(c,n),d=this.pow(e,n.addn(1).iushrn(1)),l=this.pow(e,n),p=o;0!==l.cmp(s);){for(var b=l,m=0;0!==b.cmp(s);m++)b=b.redSqr();i(m=0;n--){for(var u=t.words[n],c=f-1;c>=0;c--){var h=u>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}f=26}return i},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new S(e)},o(S,A),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e)}).call(this,r(16)(e))},function(e,t,r){"use strict";function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,r){"use strict";e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(11),o=r(219),a=r(111),s=r(231),f=r(32),u=r(4),c=function e(t,r){var o=[];return r.forEach((function(r){if("object"===(0,n.default)(r.components)){if("tuple"!==r.type.substring(0,5))throw new Error("components found but type is not tuple; report on GitHub");var a="",s=r.type.indexOf("[");s>=0&&(a=r.type.substring(s));var f=e(t,r.components);i.isArray(f)&&t?o.push("tuple("+f.join(",")+")"+a):t?o.push("("+f+")"):o.push("("+f.join(",")+")"+a)}else o.push(r.type)})),o},h=function(e){if(!a.isHexStrict(e))throw new Error("The parameter must be a valid HEX string.");var t="",r=0,n=e.length;for("0x"===e.substring(0,2)&&(r=2);r7?r+=e[n].toUpperCase():r+=e[n];return r},toHex:a.toHex,toBN:a.toBN,bytesToHex:a.bytesToHex,hexToBytes:a.hexToBytes,hexToNumberString:a.hexToNumberString,hexToNumber:a.hexToNumber,toDecimal:a.hexToNumber,numberToHex:a.numberToHex,fromDecimal:a.numberToHex,hexToUtf8:a.hexToUtf8,hexToString:a.hexToUtf8,toUtf8:a.hexToUtf8,utf8ToHex:a.utf8ToHex,stringToHex:a.utf8ToHex,fromUtf8:a.utf8ToHex,hexToAscii:h,toAscii:h,asciiToHex:d,fromAscii:d,unitMap:o.unitMap,toWei:function(e,t){if(t=l(t),!a.isBN(e)&&!i.isString(e))throw new Error("Please pass numbers as strings or BN objects to avoid precision errors.");return a.isBN(e)?o.toWei(e,t):o.toWei(e,t).toString(10)},fromWei:function(e,t){if(t=l(t),!a.isBN(e)&&!i.isString(e))throw new Error("Please pass numbers as strings or BN objects to avoid precision errors.");return a.isBN(e)?o.fromWei(e,t):o.fromWei(e,t).toString(10)},padLeft:a.leftPad,leftPad:a.leftPad,padRight:a.rightPad,rightPad:a.rightPad,toTwosComplement:a.toTwosComplement,isBloom:a.isBloom,isUserEthereumAddressInBloom:a.isUserEthereumAddressInBloom,isContractAddressInBloom:a.isContractAddressInBloom,isTopic:a.isTopic,isTopicInBloom:a.isTopicInBloom,isInBloom:a.isInBloom,compareBlockNumbers:function(e,t){if(e==t)return 0;if("genesis"!=e&&"earliest"!=e&&0!=e||"genesis"!=t&&"earliest"!=t&&0!=t){if("genesis"==e||"earliest"==e)return-1;if("genesis"==t||"earliest"==t)return 1;if("latest"==e)return"pending"==t?-1:1;if("latest"===t)return"pending"==e?1:-1;if("pending"==e)return 1;if("pending"==t)return-1;var r=new u(e),n=new u(t);return r.lt(n)?-1:r.eq(n)?0:1}return 0}}},function(e,t,r){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=n,n.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},function(e,t,r){"use strict";var n=r(138);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}},function(e,t,r){"use strict";var n=r(1),i=r(139);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?i(e):t}},function(e,t,r){"use strict";var n=t,i=r(4),o=r(18),a=r(85);n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-f:f,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n=0,i=0;e.cmpn(-n)>0||t.cmpn(-i)>0;){var o,a,s,f=e.andln(3)+n&3,u=t.andln(3)+i&3;if(3===f&&(f=-1),3===u&&(u=-1),0==(1&f))o=0;else o=3!==(s=e.andln(7)+n&7)&&5!==s||2!==u?f:-f;if(r[0].push(o),0==(1&u))a=0;else a=3!==(s=t.andln(7)+i&7)&&5!==s||2!==f?u:-u;r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t,r){"use strict";var n=t,i=r(4),o=r(18),a=r(85);n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-f:f,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n=0,i=0;e.cmpn(-n)>0||t.cmpn(-i)>0;){var o,a,s,f=e.andln(3)+n&3,u=t.andln(3)+i&3;if(3===f&&(f=-1),3===u&&(u=-1),0==(1&f))o=0;else o=3!==(s=e.andln(7)+n&7)&&5!==s||2!==u?f:-f;if(r[0].push(o),0==(1&u))a=0;else a=3!==(s=t.andln(7)+i&7)&&5!==s||2!==f?u:-u;r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t,r){"use strict";var n=t,i=r(14),o=r(37),a=r(197);n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=function(e,t,r){var n=new Array(Math.max(e.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-f:f,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},n.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n=0,i=0;e.cmpn(-n)>0||t.cmpn(-i)>0;){var o,a,s,f=e.andln(3)+n&3,u=t.andln(3)+i&3;if(3===f&&(f=-1),3===u&&(u=-1),0==(1&f))o=0;else o=3!==(s=e.andln(7)+n&7)&&5!==s||2!==u?f:-f;if(r[0].push(o),0==(1&u))a=0;else a=3!==(s=t.andln(7)+i&7)&&5!==s||2!==f?u:-u;r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return r},n.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isBytesLike=f,t.isBytes=u,t.arrayify=c,t.concat=h,t.stripZeros=function(e){var t=c(e);if(0===t.length)return t;var r=0;for(;r=256||r%1)return!1}return!0}function c(e,t){if(t||(t={}),"number"==typeof e){o.checkSafeUint53(e,"invalid arrayify value");for(var r=[];e;)r.unshift(255&e),e=parseInt(String(e/256));return 0===r.length&&r.push(0),s(new Uint8Array(r))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),a(e)&&(e=e.toHexString()),l(e)){var n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0x0"+n.substring(2):"right"===t.hexPad?n+="0":o.throwArgumentError("hex data is odd-length","value",e));for(var i=[],f=0;ft&&o.throwArgumentError("value out of range","value",arguments[0]);var r=new Uint8Array(t);return r.set(e,t-e.length),s(r)}function l(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}function p(e,t){if(t||(t={}),"number"==typeof e){o.checkSafeUint53(e,"invalid hexlify value");for(var r="";e;)r="0123456789abcdef"[15&e]+r,e=Math.floor(e/16);return r.length?(r.length%2&&(r="0"+r),"0x"+r):"0x00"}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),a(e))return e.toHexString();if(l(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":o.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(u(e)){for(var n="0x",i=0;i>4]+"0123456789abcdef"[15&s]}return n}return o.throwArgumentError("invalid hexlify value","value",e)}function b(e){"string"!=typeof e&&(e=p(e)),l(e)||o.throwArgumentError("invalid hex string","value",e),e=e.substring(2);for(var t=0;t2*t+2&&o.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function v(e){var t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0};if(f(e)){var r=c(e);65!==r.length&&o.throwArgumentError("invalid signature string; must be 65 bytes","signature",e),t.r=p(r.slice(0,32)),t.s=p(r.slice(32,64)),t.v=r[64],t.v<27&&(0===t.v||1===t.v?t.v+=27:o.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=p(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){var n=d(c(t._vs),32);t._vs=p(n);var i=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=i:t.recoveryParam!==i&&o.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;var a=p(n);null==t.s?t.s=a:t.s!==a&&o.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?o.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==1-t.v%2&&o.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&l(t.r)?t.r=m(t.r,32):o.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&l(t.s)?t.s=m(t.s,32):o.throwArgumentError("signature missing or invalid s","signature",e);var s=c(t.s);s[0]>=128&&o.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(s[0]|=128);var u=p(s);t._vs&&(l(t._vs)||o.throwArgumentError("signature invalid _vs","signature",e),t._vs=m(t._vs,32)),null==t._vs?t._vs=u:t._vs!==u&&o.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=t.ErrorCode=t.LogLevel=void 0;var i=n(r(6)),o=n(r(7)),a=r(304),s=!1,f=!1,u={debug:1,default:2,info:2,warning:3,error:4,off:5},c=u.default,h=null;var d,l,p=function(){try{var e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((function(t){try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();t.LogLevel=d,function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(d||(t.LogLevel=d={})),t.ErrorCode=l,function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT"}(l||(t.ErrorCode=l={}));var b=function(){function e(t){(0,i.default)(this,e),Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}return(0,o.default)(e,[{key:"_log",value:function(e,t){var r=e.toLowerCase();null==u[r]&&this.throwArgumentError("invalid log level name","logLevel",e),c>u[r]||console.log.apply(console,t)}},{key:"debug",value:function(){for(var t=arguments.length,r=new Array(t),n=0;n=9007199254740991)&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}},{key:"checkArgumentCount",value:function(t,r,n){n=n?": "+n:"",tr&&this.throwError("too many arguments"+n,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:r})}},{key:"checkNew",value:function(t,r){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}},{key:"checkAbstract",value:function(t,r){t===r?this.throwError("cannot instantiate abstract class "+JSON.stringify(r.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}}],[{key:"globalLogger",value:function(){return h||(h=new e(a.version)),h}},{key:"setCensorship",value:function(t,r){if(!t&&r&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),s){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}f=!!t,s=!!r}},{key:"setLogLevel",value:function(t){var r=u[t.toLowerCase()];null!=r?c=r:e.globalLogger().warn("invalid log level - "+t)}}]),e}();t.Logger=b,b.errors=l,b.levels=d},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.checkResultErrors=function(e){var t=[];return function e(r,n){if(!Array.isArray(n))return;for(var i in n){var o=r.slice();o.push(i);try{e(o,n[i])}catch(e){t.push({path:o,error:e})}}}([],e),t},t.Reader=t.Writer=t.Coder=void 0;var i=n(r(6)),o=n(r(7)),a=r(24),s=r(38),f=r(65),u=r(25),c=r(48),h=new u.Logger(c.version);var d=function(){function e(t,r,n,o){(0,i.default)(this,e),this.name=t,this.type=r,this.localName=n,this.dynamic=o}return(0,o.default)(e,[{key:"_throwError",value:function(e,t){h.throwArgumentError(e,this.localName,t)}}]),e}();t.Coder=d;var l=function(){function e(t){(0,i.default)(this,e),(0,f.defineReadOnly)(this,"wordSize",t||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(t)}return(0,o.default)(e,[{key:"_writeData",value:function(e){return this._data.push(e),this._dataLength+=e.length,e.length}},{key:"appendWriter",value:function(e){return this._writeData((0,a.concat)(e._data))}},{key:"writeBytes",value:function(e){var t=(0,a.arrayify)(e),r=t.length%this.wordSize;return r&&(t=(0,a.concat)([t,this._padding.slice(r)])),this._writeData(t)}},{key:"_getValue",value:function(e){var t=(0,a.arrayify)(s.BigNumber.from(e));return t.length>this.wordSize&&h.throwError("value out-of-bounds",u.Logger.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=(0,a.concat)([this._padding.slice(t.length%this.wordSize),t])),t}},{key:"writeValue",value:function(e){return this._writeData(this._getValue(e))}},{key:"writeUpdatableValue",value:function(){var e=this,t=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,function(r){e._data[t]=e._getValue(r)}}},{key:"data",get:function(){return(0,a.hexConcat)(this._data)}},{key:"length",get:function(){return this._dataLength}}]),e}();t.Writer=l;var p=function(){function e(t,r,n,o){(0,i.default)(this,e),(0,f.defineReadOnly)(this,"_data",(0,a.arrayify)(t)),(0,f.defineReadOnly)(this,"wordSize",r||32),(0,f.defineReadOnly)(this,"_coerceFunc",n),(0,f.defineReadOnly)(this,"allowLoose",o),this._offset=0}return(0,o.default)(e,[{key:"coerce",value:function(t,r){return this._coerceFunc?this._coerceFunc(t,r):e.coerce(t,r)}},{key:"_peekBytes",value:function(e,t,r){var n=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+t<=this._data.length?n=t:h.throwError("data out-of-bounds",u.Logger.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}},{key:"subReader",value:function(t){return new e(this._data.slice(this._offset+t),this.wordSize,this._coerceFunc,this.allowLoose)}},{key:"readBytes",value:function(e,t){var r=this._peekBytes(0,e,!!t);return this._offset+=r.length,r.slice(0,e)}},{key:"readValue",value:function(){return s.BigNumber.from(this.readBytes(this.wordSize))}},{key:"data",get:function(){return(0,a.hexlify)(this._data)}},{key:"consumed",get:function(){return this._offset}}],[{key:"coerce",value:function(e,t){var r=e.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(t=t.toNumber()),t}}]),e}();t.Reader=p},function(e,t,r){"use strict";var n=r(18),i=r(3);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function a(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function f(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,r[n++]=63&a|128):o(e,i)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(i=0;i>>0}return a},t.split32=function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,n){return e+t+r+n>>>0},t.sum32_5=function(e,t,r,n,i){return e+t+r+n+i>>>0},t.sum64=function(e,t,r,n){var i=e[t],o=n+e[t+1]>>>0,a=(o>>0,e[t+1]=o},t.sum64_hi=function(e,t,r,n){return(t+n>>>0>>0},t.sum64_lo=function(e,t,r,n){return t+n>>>0},t.sum64_4_hi=function(e,t,r,n,i,o,a,s){var f=0,u=t;return f+=(u=u+n>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,r,n,i,o,a,s){return t+n+o+s>>>0},t.sum64_5_hi=function(e,t,r,n,i,o,a,s,f,u){var c=0,h=t;return c+=(h=h+n>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,r,n,i,o,a,s,f,u){return t+n+o+s+u>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},function(e,t,r){"use strict";var n=r(37),i=r(12);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function a(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function f(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var r=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,r[n++]=63&a|128):o(e,i)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(i=0;i>>0}return a},t.split32=function(e,t){for(var r=new Array(4*e.length),n=0,i=0;n>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,r){return e+t+r>>>0},t.sum32_4=function(e,t,r,n){return e+t+r+n>>>0},t.sum32_5=function(e,t,r,n,i){return e+t+r+n+i>>>0},t.sum64=function(e,t,r,n){var i=e[t],o=n+e[t+1]>>>0,a=(o>>0,e[t+1]=o},t.sum64_hi=function(e,t,r,n){return(t+n>>>0>>0},t.sum64_lo=function(e,t,r,n){return t+n>>>0},t.sum64_4_hi=function(e,t,r,n,i,o,a,s){var f=0,u=t;return f+=(u=u+n>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,r,n,i,o,a,s){return t+n+o+s>>>0},t.sum64_5_hi=function(e,t,r,n,i,o,a,s,f,u){var c=0,h=t;return c+=(h=h+n>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,r,n,i,o,a,s,f,u){return t+n+o+s+u>>>0},t.rotr64_hi=function(e,t,r){return(t<<32-r|e>>>r)>>>0},t.rotr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0},t.shr64_hi=function(e,t,r){return e>>>r},t.shr64_lo=function(e,t,r){return(e<<32-r|t>>>r)>>>0}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=t.ErrorCode=t.LogLevel=void 0;var i=n(r(6)),o=n(r(7)),a=r(270),s=!1,f=!1,u={debug:1,default:2,info:2,warning:3,error:4,off:5},c=u.default,h=null;var d,l,p=function(){try{var e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((function(t){try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();t.LogLevel=d,function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(d||(t.LogLevel=d={})),t.ErrorCode=l,function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT"}(l||(t.ErrorCode=l={}));var b=function(){function e(t){(0,i.default)(this,e),Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}return(0,o.default)(e,[{key:"_log",value:function(e,t){var r=e.toLowerCase();null==u[r]&&this.throwArgumentError("invalid log level name","logLevel",e),c>u[r]||console.log.apply(console,t)}},{key:"debug",value:function(){for(var t=arguments.length,r=new Array(t),n=0;n=9007199254740991)&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}},{key:"checkArgumentCount",value:function(t,r,n){n=n?": "+n:"",tr&&this.throwError("too many arguments"+n,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:r})}},{key:"checkNew",value:function(t,r){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}},{key:"checkAbstract",value:function(t,r){t===r?this.throwError("cannot instantiate abstract class "+JSON.stringify(r.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}}],[{key:"globalLogger",value:function(){return h||(h=new e(a.version)),h}},{key:"setCensorship",value:function(t,r){if(!t&&r&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),s){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}f=!!t,s=!!r}},{key:"setLogLevel",value:function(t){var r=u[t.toLowerCase()];null!=r?c=r:e.globalLogger().warn("invalid log level - "+t)}}]),e}();t.Logger=b,b.errors=l,b.levels=d},function(e,t,r){"use strict";var n=r(5).Buffer,i=r(36).Transform,o=r(60).StringDecoder;function a(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(3)(a,i),a.prototype.update=function(e,t,r){"string"==typeof e&&(e=n.from(e,t));var i=this._update(e);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},a.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},a.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},a.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){n=e}finally{r(n)}},a.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},a.prototype._finalOrDigest=function(e){var t=this.__final()||n.alloc(0);return e&&(t=this._toString(t,e,!0)),t},a.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new o(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n},e.exports=a},function(e,t,r){"use strict";var n=r(215),i=r(264);e.exports={packageInit:function(e,t){if(t=Array.prototype.slice.call(t),!e)throw new Error('You need to instantiate using the "new" keyword.');Object.defineProperty(e,"currentProvider",{get:function(){return e._provider},set:function(t){return e.setProvider(t)},enumerable:!0,configurable:!0}),t[0]&&t[0]._requestManager?e._requestManager=t[0]._requestManager:e._requestManager=new n.Manager(t[0],t[1]),e.givenProvider=n.Manager.givenProvider,e.providers=n.Manager.providers,e._provider=e._requestManager.provider,e.setProvider||(e.setProvider=function(t,r){return e._requestManager.setProvider(t,r),e._provider=e._requestManager.provider,!0}),e.setRequestManager=function(t){e._requestManager=t,e._provider=t.provider},e.BatchRequest=n.BatchManager.bind(null,e._requestManager),e.extend=i(e)},addProviders:function(e){e.givenProvider=n.Manager.givenProvider,e.providers=n.Manager.providers}}},function(e,t,r){"use strict";(function(t,n){var i=r(5).Buffer,o=t.crypto||t.msCrypto;o&&o.getRandomValues?e.exports=function(e,t){if(e>4294967295)throw new RangeError("requested too many random bytes");var r=i.allocUnsafe(e);if(e>0)if(e>65536)for(var a=0;a1?(e[r[0]]=e[r[0]]||{},e[r[0]][r[1]]=t):e[r[0]]=t},l.prototype.getCall=function(e){return a.isFunction(this.call)?this.call(e):this.call},l.prototype.extractCallback=function(e){if(a.isFunction(e[e.length-1]))return e.pop()},l.prototype.validateArgs=function(e){if(e.length!==this.params)throw s.InvalidNumberOfParams(e.length,this.params,this.name)},l.prototype.formatInput=function(e){var t=this;return this.inputFormatter?this.inputFormatter.map((function(r,n){return r?r.call(t,e[n]):e[n]})):e},l.prototype.formatOutput=function(e){var t=this;return a.isArray(e)?e.map((function(e){return t.outputFormatter&&e?t.outputFormatter(e):e})):this.outputFormatter&&e?this.outputFormatter(e):e},l.prototype.toPayload=function(e){var t=this.getCall(e),r=this.extractCallback(e),n=this.formatInput(e);this.validateArgs(n);var i={method:t,params:n,callback:r};return this.transformPayload&&(i=this.transformPayload(i)),i},l.prototype._confirmTransaction=function(e,t,r){var n=this,p=!1,b=!0,m=0,v=0,y=null,g=null,w=a.isObject(r.params[0])&&r.params[0].gas?r.params[0].gas:null,_=a.isObject(r.params[0])&&r.params[0].data&&r.params[0].from&&!r.params[0].to,k=_&&r.params[0].data.length>2,A=[new l({name:"getBlockByNumber",call:"eth_getBlockByNumber",params:2,inputFormatter:[f.inputBlockNumberFormatter,function(e){return!!e}],outputFormatter:f.outputBlockFormatter}),new l({name:"getTransactionReceipt",call:"eth_getTransactionReceipt",params:1,inputFormatter:[null],outputFormatter:f.outputTransactionReceiptFormatter}),new l({name:"getCode",call:"eth_getCode",params:2,inputFormatter:[f.inputAddressFormatter,f.inputDefaultBlockNumberFormatter]}),new l({name:"getTransactionByHash",call:"eth_getTransactionByHash",params:1,inputFormatter:[null],outputFormatter:f.outputTransactionFormatter}),new h({name:"subscribe",type:"eth",subscriptions:{newBlockHeaders:{subscriptionName:"newHeads",params:0,outputFormatter:f.outputBlockFormatter}}})],S={};a.each(A,(function(e){e.attachToObject(S),e.requestManager=n.requestManager}));var E=function(a,h,l,A,E){if(!l)return E||(E={unsubscribe:function(){clearInterval(y)}}),(a?c.resolve(a):S.getTransactionReceipt(t)).catch((function(t){E.unsubscribe(),p=!0,u._fireError({message:"Failed to check for transaction receipt:",data:t},e.eventEmitter,e.reject)})).then(function(){var t=(0,o.default)(i.default.mark((function t(r){var o,s,f;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r&&r.blockHash){t.next=2;break}throw new Error("Receipt missing or blockHash null");case 2:if(n.extraFormatters&&n.extraFormatters.receiptFormatter&&(r=n.extraFormatters.receiptFormatter(r)),!(e.eventEmitter.listeners("confirmation").length>0)){t.next=28;break}if(void 0!==a&&0===v){t.next=25;break}return t.next=7,S.getBlockByNumber("latest");case 7:if(s=t.sent,f=s?s.hash:null,!h){t.next=24;break}if(!g){t.next=17;break}return t.next=13,S.getBlockByNumber(g.number+1);case 13:(o=t.sent)&&(g=o,e.eventEmitter.emit("confirmation",v,r,f)),t.next=22;break;case 17:return t.next=19,S.getBlockByNumber(r.blockNumber);case 19:o=t.sent,g=o,e.eventEmitter.emit("confirmation",v,r,f);case 22:t.next=25;break;case 24:e.eventEmitter.emit("confirmation",v,r,f);case 25:(h&&o||!h)&&v++,b=!1,v===n.transactionConfirmationBlocks+1&&(E.unsubscribe(),e.eventEmitter.removeAllListeners());case 28:return t.abrupt("return",r);case 29:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()).then(function(){var t=(0,o.default)(i.default.mark((function t(r){var o;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!_||p){t.next=19;break}if(r.contractAddress){t.next=5;break}return b&&(E.unsubscribe(),p=!0),u._fireError(s.NoContractAddressFoundError(r),e.eventEmitter,e.reject,null,r),t.abrupt("return");case 5:return t.prev=5,t.next=8,S.getCode(r.contractAddress);case 8:o=t.sent,t.next=13;break;case 11:t.prev=11,t.t0=t.catch(5);case 13:if(o){t.next=15;break}return t.abrupt("return");case 15:!0===r.status&&k||o.length>2?(e.eventEmitter.emit("receipt",r),n.extraFormatters&&n.extraFormatters.contractDeployFormatter?e.resolve(n.extraFormatters.contractDeployFormatter(r)):e.resolve(r),b&&e.eventEmitter.removeAllListeners()):u._fireError(s.ContractCodeNotStoredError(r),e.eventEmitter,e.reject,null,r),b&&E.unsubscribe(),p=!0;case 19:return t.abrupt("return",r);case 20:case"end":return t.stop()}}),t,null,[[5,11]])})));return function(e){return t.apply(this,arguments)}}()).then(function(){var t=(0,o.default)(i.default.mark((function t(o){var a,c,h,l;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(_||p){t.next=35;break}if(o.outOfGas||w&&w===o.gasUsed||!0!==o.status&&"0x1"!==o.status&&void 0!==o.status){t.next=7;break}e.eventEmitter.emit("receipt",o),e.resolve(o),b&&e.eventEmitter.removeAllListeners(),t.next=33;break;case 7:if(JSON.stringify(o,null,2),!1!==o.status&&"0x0"!==o.status){t.next=32;break}if(t.prev=9,a=null,!n.handleRevert||"eth_sendTransaction"!==n.call&&"eth_sendRawTransaction"!==n.call){t.next=24;break}return c=r.params[0],"eth_sendRawTransaction"===n.call&&(h=r.params[0],l=d.parse(h),c=f.inputTransactionFormatter({data:l.data,to:l.to,from:l.from,gas:l.gasLimit.toHexString(),gasPrice:l.gasPrice.toHexString(),value:l.value.toHexString()})),t.next=16,n.getRevertReason(c,o.blockNumber);case 16:if(!(a=t.sent)){t.next=21;break}u._fireError(s.TransactionRevertInstructionError(a.reason,a.signature,o),e.eventEmitter,e.reject,null,o),t.next=22;break;case 21:throw!1;case 22:t.next=25;break;case 24:throw!1;case 25:t.next=30;break;case 27:t.prev=27,t.t0=t.catch(9),u._fireError(s.TransactionRevertedWithoutReasonError(o),e.eventEmitter,e.reject,null,o);case 30:t.next=33;break;case 32:u._fireError(s.TransactionOutOfGasError(o),e.eventEmitter,e.reject,null,o);case 33:b&&E.unsubscribe(),p=!0;case 35:case"end":return t.stop()}}),t,null,[[9,27]])})));return function(e){return t.apply(this,arguments)}}()).catch((function(){m++,h?m-1>=n.transactionPollingTimeout&&(E.unsubscribe(),p=!0,u._fireError(s.TransactionError("Transaction was not mined within "+n.transactionPollingTimeout+" seconds, please make sure your transaction was properly sent. Be aware that it might still be mined!"),e.eventEmitter,e.reject)):m-1>=n.transactionBlockTimeout&&(E.unsubscribe(),p=!0,u._fireError(s.TransactionError("Transaction was not mined within "+n.transactionBlockTimeout+" blocks, please make sure your transaction was properly sent. Be aware that it might still be mined!"),e.eventEmitter,e.reject))}));E.unsubscribe(),p=!0,u._fireError({message:"Failed to subscribe to new newBlockHeaders to confirm the transaction receipts.",data:l},e.eventEmitter,e.reject)},M=function(e){var t=function(){y=setInterval(E.bind(null,e,!0),1e3)};this.requestManager.provider.on?S.subscribe("newBlockHeaders",(function(r,n,i){r||!n?t():E(e,!1,r,0,i)})):t()}.bind(this);S.getTransactionReceipt(t).then((function(t){t&&t.blockHash?(e.eventEmitter.listeners("confirmation").length>0&&M(t),E(t,!1)):p||M()})).catch((function(){p||M()}))};var p=function(e,t){return a.isNumber(e)?t.wallet[e]:a.isObject(e)&&e.address&&e.privateKey?e:t.wallet[e.toLowerCase()]};l.prototype.buildCall=function(){var e=this,t="eth_sendTransaction"===e.call||"eth_sendRawTransaction"===e.call,r="eth_call"===e.call,n=function(){var n=c(!t),i=e.toPayload(Array.prototype.slice.call(arguments)),o=function(o,a){var f;if(e.handleRevert&&r&&e.abiCoder&&(!o&&e.isRevertReasonString(a)?f=a.substring(10):o&&o.data&&(f=o.data.substring(10)),f)){var c=e.abiCoder.decodeParameter("string","0x"+f);return void u._fireError(s.RevertInstructionError(c,"Error(String)"),n.eventEmitter,n.reject,i.callback,{reason:c,signature:"Error(String)"})}try{a=e.formatOutput(a)}catch(e){o=e}if(a instanceof Error&&(o=a),o)return o.error&&(o=o.error),u._fireError(o,n.eventEmitter,n.reject,i.callback);i.callback&&i.callback(null,a),t?(n.eventEmitter.emit("transactionHash",a),e._confirmTransaction(n,a,i)):o||n.resolve(a)},f=function(t){var r=a.extend({},i,{method:"eth_sendRawTransaction",params:[t.rawTransaction]});e.requestManager.send(r,o)},h=function(e,t){var r;if(t&&t.accounts&&t.accounts.wallet&&t.accounts.wallet.length)if("eth_sendTransaction"===e.method){var i=e.params[0];if((r=p(a.isObject(i)?i.from:null,t.accounts))&&r.privateKey){var s=a.omit(i,"from");return t.defaultChain&&!s.chain&&(s.chain=t.defaultChain),t.defaultHardfork&&!s.hardfork&&(s.hardfork=t.defaultHardfork),t.defaultCommon&&!s.common&&(s.common=t.defaultCommon),void t.accounts.signTransaction(s,r.privateKey).then(f).catch((function(e){if(a.isFunction(n.eventEmitter.listeners)&&n.eventEmitter.listeners("error").length){try{n.eventEmitter.emit("error",e)}catch(e){}n.eventEmitter.removeAllListeners(),n.eventEmitter.catch((function(){}))}n.reject(e)}))}}else if("eth_sign"===e.method){var u=e.params[1];if((r=p(e.params[0],t.accounts))&&r.privateKey){var c=t.accounts.sign(u,r.privateKey);return e.callback&&e.callback(null,c.signature),void n.resolve(c.signature)}}return t.requestManager.send(e,o)};if(t&&a.isObject(i.params[0])&&void 0===i.params[0].gasPrice){var d=new l({name:"getGasPrice",call:"eth_gasPrice",params:0}).createFunction(e.requestManager);d((function(r,o){o&&(i.params[0].gasPrice=o),t&&setTimeout((function(){n.eventEmitter.emit("sending",i)}),0),h(i,e)}))}else t&&setTimeout((function(){n.eventEmitter.emit("sending",i)}),0),h(i,e);return t&&setTimeout((function(){n.eventEmitter.emit("sent",i)}),0),n.eventEmitter};return n.method=e,n.request=this.request.bind(this),n},l.prototype.getRevertReason=function(e,t){var r=this;return new Promise((function(n,i){new l({name:"call",call:"eth_call",params:2,abiCoder:r.abiCoder,handleRevert:!0}).createFunction(r.requestManager)(e,u.numberToHex(t)).then((function(){n(!1)})).catch((function(e){e.reason?n({reason:e.reason,signature:e.signature}):i(e)}))}))},l.prototype.isRevertReasonString=function(e){return a.isString(e)&&(e.length-2)/2%32==4&&"0x08c379a0"===e.substring(0,10)},l.prototype.request=function(){var e=this.toPayload(Array.prototype.slice.call(arguments));return e.format=this.formatOutput.bind(this),e},e.exports=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isBytesLike=f,t.isBytes=u,t.arrayify=c,t.concat=h,t.stripZeros=function(e){var t=c(e);if(0===t.length)return t;var r=0;for(;r=256||r%1)return!1}return!0}function c(e,t){if(t||(t={}),"number"==typeof e){o.checkSafeUint53(e,"invalid arrayify value");for(var r=[];e;)r.unshift(255&e),e=parseInt(String(e/256));return 0===r.length&&r.push(0),s(new Uint8Array(r))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),a(e)&&(e=e.toHexString()),l(e)){var n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0x0"+n.substring(2):"right"===t.hexPad?n+="0":o.throwArgumentError("hex data is odd-length","value",e));for(var i=[],f=0;ft&&o.throwArgumentError("value out of range","value",arguments[0]);var r=new Uint8Array(t);return r.set(e,t-e.length),s(r)}function l(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}function p(e,t){if(t||(t={}),"number"==typeof e){o.checkSafeUint53(e,"invalid hexlify value");for(var r="";e;)r="0123456789abcdef"[15&e]+r,e=Math.floor(e/16);return r.length?(r.length%2&&(r="0"+r),"0x"+r):"0x00"}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),a(e))return e.toHexString();if(l(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":o.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(u(e)){for(var n="0x",i=0;i>4]+"0123456789abcdef"[15&s]}return n}return o.throwArgumentError("invalid hexlify value","value",e)}function b(e){"string"!=typeof e&&(e=p(e)),l(e)||o.throwArgumentError("invalid hex string","value",e),e=e.substring(2);for(var t=0;t2*t+2&&o.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function v(e){var t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0};if(f(e)){var r=c(e);65!==r.length&&o.throwArgumentError("invalid signature string; must be 65 bytes","signature",e),t.r=p(r.slice(0,32)),t.s=p(r.slice(32,64)),t.v=r[64],t.v<27&&(0===t.v||1===t.v?t.v+=27:o.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=p(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){var n=d(c(t._vs),32);t._vs=p(n);var i=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=i:t.recoveryParam!==i&&o.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;var a=p(n);null==t.s?t.s=a:t.s!==a&&o.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?o.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==1-t.v%2&&o.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&l(t.r)?t.r=m(t.r,32):o.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&l(t.s)?t.s=m(t.s,32):o.throwArgumentError("signature missing or invalid s","signature",e);var s=c(t.s);s[0]>=128&&o.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(s[0]|=128);var u=p(s);t._vs&&(l(t._vs)||o.throwArgumentError("signature invalid _vs","signature",e),t._vs=m(t._vs,32)),null==t._vs?t._vs=u:t._vs!==u&&o.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t}},function(e,t,r){"use strict";e.exports=i;var n=r(80).EventEmitter;function i(){n.call(this)}r(3)(i,n),i.Readable=r(42),i.Writable=r(388),i.Duplex=r(389),i.Transform=r(390),i.PassThrough=r(391),i.Stream=i,i.prototype.pipe=function(e,t){var r=this;function i(t){e.writable&&!1===e.write(t)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",i),e.on("drain",o),e._isStdio||t&&!1===t.end||(r.on("end",s),r.on("close",f));var a=!1;function s(){a||(a=!0,e.end())}function f(){a||(a=!0,"function"==typeof e.destroy&&e.destroy())}function u(e){if(c(),0===n.listenerCount(this,"error"))throw e}function c(){r.removeListener("data",i),e.removeListener("drain",o),r.removeListener("end",s),r.removeListener("close",f),r.removeListener("error",u),e.removeListener("error",u),r.removeListener("end",c),r.removeListener("close",c),e.removeListener("close",c)}return r.on("error",u),e.on("error",u),r.on("end",c),r.on("close",c),e.on("close",c),e.emit("pipe",r),e}},function(e,t,r){"use strict";function n(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=n,n.equal=function(e,t,r){if(e!=t)throw new Error(r||"Assertion failed: "+e+" != "+t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BigNumber",{enumerable:!0,get:function(){return n.BigNumber}}),Object.defineProperty(t,"formatFixed",{enumerable:!0,get:function(){return i.formatFixed}}),Object.defineProperty(t,"FixedFormat",{enumerable:!0,get:function(){return i.FixedFormat}}),Object.defineProperty(t,"FixedNumber",{enumerable:!0,get:function(){return i.FixedNumber}}),Object.defineProperty(t,"parseFixed",{enumerable:!0,get:function(){return i.parseFixed}});var n=r(140),i=r(306)},function(e,t,r){"use strict";var n=r(5).Buffer;function i(e,t){this._block=n.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=n.from(e,t));for(var r=this._block,i=this._blockSize,o=e.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return e?o.toString(e):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,r){"use strict";var n=r(13).Buffer;function i(e,t){this._block=n.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=n.from(e,t));for(var r=this._block,i=this._blockSize,o=e.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return e?o.toString(e):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(114),o=r(236);function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=w,t.resolve=function(e,t){return w(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?w(e,!1,!0).resolveObject(t):t},t.format=function(e){o.isString(e)&&(e=w(e));return e instanceof a?e.format():a.prototype.format.call(e)},t.Url=a;var s=/^([a-z0-9.+-]+:)/i,f=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),h=["'"].concat(c),d=["%","/","?",";","#"].concat(h),l=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,b=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=r(237);function w(e,t,r){if(e&&o.isObject(e)&&e instanceof a)return e;var n=new a;return n.parse(e,t,r),n}a.prototype.parse=function(e,t,r){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+(0,n.default)(e));var a=e.indexOf("?"),f=-1!==a&&a127?C+="x":C+=U[B];if(!C.match(p)){var j=O.slice(0,I),L=O.slice(I+1),F=U.match(b);F&&(j.push(F[1]),L.unshift(F[2])),L.length&&(w="/"+L.join(".")+w),this.hostname=j.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),N||(this.hostname=i.toASCII(this.hostname));var D=this.port?":"+this.port:"",z=this.hostname||"";this.host=z+D,this.href+=this.host,N&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==w[0]&&(w="/"+w))}if(!m[A])for(I=0,R=h.length;I0)&&r.host.split("@"))&&(r.auth=P.shift(),r.host=r.hostname=P.shift());return r.search=e.search,r.query=e.query,o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!A.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var E=A.slice(-1)[0],M=(r.host||e.host||A.length>1)&&("."===E||".."===E)||""===E,x=0,I=A.length;I>=0;I--)"."===(E=A[I])?A.splice(I,1):".."===E?(A.splice(I,1),x++):x&&(A.splice(I,1),x--);if(!_&&!k)for(;x--;x)A.unshift("..");!_||""===A[0]||A[0]&&"/"===A[0].charAt(0)||A.unshift(""),M&&"/"!==A.join("/").substr(-1)&&A.push("");var P,N=""===A[0]||A[0]&&"/"===A[0].charAt(0);S&&(r.hostname=r.host=N?"":A.length?A.shift():"",(P=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=P.shift(),r.host=r.hostname=P.shift()));return(_=_||r.host&&A.length)&&!N&&A.unshift(""),A.length?r.pathname=A.join("/"):(r.pathname=null,r.path=null),o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=f.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,r){"use strict";(t=e.exports=r(117)).Stream=t,t.Readable=t,t.Writable=r(81),t.Duplex=r(33),t.Transform=r(121),t.PassThrough=r(254)},function(e,t,r){"use strict";(function(e){var n=r(0)(r(1));function i(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===i(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"===(0,n.default)(e)},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===i(e)},t.isObject=function(e){return"object"===(0,n.default)(e)&&null!==e},t.isDate=function(e){return"[object Date]"===i(e)},t.isError=function(e){return"[object Error]"===i(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===(0,n.default)(e)||void 0===e},t.isBuffer=e.isBuffer}).call(this,r(2).Buffer)},function(e,t,r){"use strict";e.exports=r(265)},function(e,t,r){"use strict";var n,i=r(0)(r(1));function o(e){this.rand=e}if(e.exports=function(e){return n||(n=new o(null)),n.generate(e)},e.exports.Rand=o,o.prototype.generate=function(e){return this._rand(e)},o.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=n.join32(e,0,e.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o=this._delta8){var r=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-r,e.length),0===this.pending.length&&(this.pending=null),e=n.join32(e,0,e.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=e>>>16&255,n[i++]=e>>>8&255,n[i++]=255&e}else for(n[i++]=255&e,n[i++]=e>>>8&255,n[i++]=e>>>16&255,n[i++]=e>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o=0}))},intToBuffer:function(e){var r=s(e);return new t(a(r.slice(2)),"hex")},getBinarySize:function(e){if("string"!=typeof e)throw new Error("[ethjs-util] while getting binary size, method getBinarySize requires input 'str' to be type String, got '"+(0,n.default)(e)+"'.");return t.byteLength(e,"utf8")},isHexPrefixed:i,stripHexPrefix:o,padToEven:a,intToHex:s,fromAscii:function(e){for(var t="",r=0;r0&&"0"===t.toString();)t=(e=e.slice(1))[0];return e},t.stripZeros=t.unpad,t.toBuffer=function(t){if(!e.isBuffer(t))if(Array.isArray(t))t=e.from(t);else if("string"==typeof t){if(!n.isHexString(t))throw new Error("Cannot convert string to buffer. toBuffer only supports 0x-prefixed hex strings and this string was given: "+t);t=e.from(n.padToEven(n.stripHexPrefix(t)),"hex")}else if("number"==typeof t)t=n.intToBuffer(t);else if(null==t)t=e.allocUnsafe(0);else if(i.isBN(t))t=t.toArrayLike(e);else{if(!t.toArray)throw new Error("invalid type");t=e.from(t.toArray())}return t},t.bufferToInt=function(e){return new i(t.toBuffer(e)).toNumber()},t.bufferToHex=function(e){return"0x"+(e=t.toBuffer(e)).toString("hex")},t.fromSigned=function(e){return new i(e).fromTwos(256)},t.toUnsigned=function(t){return e.from(t.toTwos(256).toArray())},t.addHexPrefix=function(e){return"string"!=typeof e||n.isHexPrefixed(e)?e:"0x"+e},t.baToJSON=function(r){if(e.isBuffer(r))return"0x"+r.toString("hex");if(r instanceof Array){for(var n=[],i=0;i>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function f(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function c(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function l(e){return e&&e.length?this.write(e):""}t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(e.lastNeed=i-1),i;if(--n=0)return i>0&&(e.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,r){"use strict";var n=r(78),i=function(e){var t,r,i=new Promise((function(){t=arguments[0],r=arguments[1]}));if(e)return{resolve:t,reject:r,eventEmitter:i};var o=new n;return i._events=o._events,i.emit=o.emit,i.on=o.on,i.once=o.once,i.off=o.off,i.listeners=o.listeners,i.addListener=o.addListener,i.removeListener=o.removeListener,i.removeAllListeners=o.removeAllListeners,{resolve:t,reject:r,eventEmitter:i}};i.resolve=function(e){var t=i(!0);return t.resolve(e),t.eventEmitter},e.exports=i},function(e,t,r){"use strict";var n=r(266),i=function(e){this.name=e.name,this.type=e.type,this.subscriptions=e.subscriptions||{},this.requestManager=null};i.prototype.setRequestManager=function(e){this.requestManager=e},i.prototype.attachToObject=function(e){var t=this.buildCall(),r=this.name.split(".");r.length>1?(e[r[0]]=e[r[0]]||{},e[r[0]][r[1]]=t):e[r[0]]=t},i.prototype.buildCall=function(){var e=this;return function(){e.subscriptions[arguments[0]]||console.warn("Subscription "+JSON.stringify(arguments[0])+" doesn't exist. Subscribing anyway.");var t=new n({subscription:e.subscriptions[arguments[0]]||{},requestManager:e.requestManager,type:e.type});return t.subscribe.apply(t,arguments)}},e.exports={subscriptions:i,subscription:n}},function(e,t,r){"use strict";var n=r(4),i=r(21),o=i.getNAF,a=i.getJSF,s=i.assert;function f(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function u(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=f,f.prototype.point=function(){throw new Error("Not implemented")},f.prototype.validate=function(){throw new Error("Not implemented")},f.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),n=o(t,1,this._bitLength),i=(1<=f;t--)u=(u<<1)+n[t];a.push(u)}for(var c=this.jpoint(null,null,null),h=this.jpoint(null,null,null),d=i;d>0;d--){for(f=0;f=0;u--){for(t=0;u>=0&&0===a[u];u--)t++;if(u>=0&&t++,f=f.dblp(t),u<0)break;var c=a[u];s(0!==c),f="affine"===e.type?c>0?f.mixedAdd(i[c-1>>1]):f.mixedAdd(i[-c-1>>1].neg()):c>0?f.add(i[c-1>>1]):f.add(i[-c-1>>1].neg())}return"affine"===e.type?f.toP():f},f.prototype._wnafMulAdd=function(e,t,r,n,i){for(var s=this._wnafT1,f=this._wnafT2,u=this._wnafT3,c=0,h=0;h=1;h-=2){var l=h-1,p=h;if(1===s[l]&&1===s[p]){var b=[t[l],null,null,t[p]];0===t[l].y.cmp(t[p].y)?(b[1]=t[l].add(t[p]),b[2]=t[l].toJ().mixedAdd(t[p].neg())):0===t[l].y.cmp(t[p].y.redNeg())?(b[1]=t[l].toJ().mixedAdd(t[p]),b[2]=t[l].add(t[p].neg())):(b[1]=t[l].toJ().mixedAdd(t[p]),b[2]=t[l].toJ().mixedAdd(t[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],v=a(r[l],r[p]);c=Math.max(v[0].length,c),u[l]=new Array(c),u[p]=new Array(c);for(var y=0;y=0;h--){for(var A=0;h>=0;){var S=!0;for(y=0;y=0&&A++,_=_.dblp(A),h<0)break;for(y=0;y0?E=f[y][M-1>>1]:M<0&&(E=f[y][-M-1>>1].neg()),_="affine"===E.type?_.mixedAdd(E):_.add(E))}}for(h=0;h=Math.ceil((e.bitLength()+1)/t.step)},u.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i=256||r%1)return!1}return!0}function c(e,t){if(t||(t={}),"number"==typeof e){o.checkSafeUint53(e,"invalid arrayify value");for(var r=[];e;)r.unshift(255&e),e=parseInt(String(e/256));return 0===r.length&&r.push(0),s(new Uint8Array(r))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),a(e)&&(e=e.toHexString()),l(e)){var n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0x0"+n.substring(2):"right"===t.hexPad?n+="0":o.throwArgumentError("hex data is odd-length","value",e));for(var i=[],f=0;ft&&o.throwArgumentError("value out of range","value",arguments[0]);var r=new Uint8Array(t);return r.set(e,t-e.length),s(r)}function l(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}function p(e,t){if(t||(t={}),"number"==typeof e){o.checkSafeUint53(e,"invalid hexlify value");for(var r="";e;)r="0123456789abcdef"[15&e]+r,e=Math.floor(e/16);return r.length?(r.length%2&&(r="0"+r),"0x"+r):"0x00"}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),a(e))return e.toHexString();if(l(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":o.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(u(e)){for(var n="0x",i=0;i>4]+"0123456789abcdef"[15&s]}return n}return o.throwArgumentError("invalid hexlify value","value",e)}function b(e){"string"!=typeof e&&(e=p(e)),l(e)||o.throwArgumentError("invalid hex string","value",e),e=e.substring(2);for(var t=0;t2*t+2&&o.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function v(e){var t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0};if(f(e)){var r=c(e);65!==r.length&&o.throwArgumentError("invalid signature string; must be 65 bytes","signature",e),t.r=p(r.slice(0,32)),t.s=p(r.slice(32,64)),t.v=r[64],t.v<27&&(0===t.v||1===t.v?t.v+=27:o.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=p(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){var n=d(c(t._vs),32);t._vs=p(n);var i=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=i:t.recoveryParam!==i&&o.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;var a=p(n);null==t.s?t.s=a:t.s!==a&&o.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?o.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==1-t.v%2&&o.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&l(t.r)?t.r=m(t.r,32):o.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&l(t.s)?t.s=m(t.s,32):o.throwArgumentError("signature missing or invalid s","signature",e);var s=c(t.s);s[0]>=128&&o.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(s[0]|=128);var u=p(s);t._vs&&(l(t._vs)||o.throwArgumentError("signature invalid _vs","signature",e),t._vs=m(t._vs,32)),null==t._vs?t._vs=u:t._vs!==u&&o.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=t.ErrorCode=t.LogLevel=void 0;var i=n(r(6)),o=n(r(7)),a=r(324),s=!1,f=!1,u={debug:1,default:2,info:2,warning:3,error:4,off:5},c=u.default,h=null;var d,l,p=function(){try{var e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((function(t){try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();t.LogLevel=d,function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(d||(t.LogLevel=d={})),t.ErrorCode=l,function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT"}(l||(t.ErrorCode=l={}));var b=function(){function e(t){(0,i.default)(this,e),Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}return(0,o.default)(e,[{key:"_log",value:function(e,t){var r=e.toLowerCase();null==u[r]&&this.throwArgumentError("invalid log level name","logLevel",e),c>u[r]||console.log.apply(console,t)}},{key:"debug",value:function(){for(var t=arguments.length,r=new Array(t),n=0;n=9007199254740991)&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}},{key:"checkArgumentCount",value:function(t,r,n){n=n?": "+n:"",tr&&this.throwError("too many arguments"+n,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:r})}},{key:"checkNew",value:function(t,r){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}},{key:"checkAbstract",value:function(t,r){t===r?this.throwError("cannot instantiate abstract class "+JSON.stringify(r.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}}],[{key:"globalLogger",value:function(){return h||(h=new e(a.version)),h}},{key:"setCensorship",value:function(t,r){if(!t&&r&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),s){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}f=!!t,s=!!r}},{key:"setLogLevel",value:function(t){var r=u[t.toLowerCase()];null!=r?c=r:e.globalLogger().warn("invalid log level - "+t)}}]),e}();t.Logger=b,b.errors=l,b.levels=d},function(e){e.exports=JSON.parse('{"identity":0,"ip4":4,"tcp":6,"sha1":17,"sha2-256":18,"sha2-512":19,"sha3-512":20,"sha3-384":21,"sha3-256":22,"sha3-224":23,"shake-128":24,"shake-256":25,"keccak-224":26,"keccak-256":27,"keccak-384":28,"keccak-512":29,"dccp":33,"murmur3-128":34,"murmur3-32":35,"ip6":41,"ip6zone":42,"path":47,"multicodec":48,"multihash":49,"multiaddr":50,"multibase":51,"dns":53,"dns4":54,"dns6":55,"dnsaddr":56,"protobuf":80,"cbor":81,"raw":85,"dbl-sha2-256":86,"rlp":96,"bencode":99,"dag-pb":112,"dag-cbor":113,"libp2p-key":114,"git-raw":120,"torrent-info":123,"torrent-file":124,"leofcoin-block":129,"leofcoin-tx":130,"leofcoin-pr":131,"sctp":132,"eth-block":144,"eth-block-list":145,"eth-tx-trie":146,"eth-tx":147,"eth-tx-receipt-trie":148,"eth-tx-receipt":149,"eth-state-trie":150,"eth-account-snapshot":151,"eth-storage-trie":152,"bitcoin-block":176,"bitcoin-tx":177,"zcash-block":192,"zcash-tx":193,"stellar-block":208,"stellar-tx":209,"md4":212,"md5":213,"bmt":214,"decred-block":224,"decred-tx":225,"ipld-ns":226,"ipfs-ns":227,"swarm-ns":228,"ipns-ns":229,"zeronet":230,"ed25519-pub":237,"dash-block":240,"dash-tx":241,"swarm-manifest":250,"swarm-feed":251,"udp":273,"p2p-webrtc-star":275,"p2p-webrtc-direct":276,"p2p-stardust":277,"p2p-circuit":290,"dag-json":297,"udt":301,"utp":302,"unix":400,"p2p":421,"ipfs":421,"https":443,"onion":444,"onion3":445,"garlic64":446,"garlic32":447,"tls":448,"quic":460,"ws":477,"wss":478,"p2p-websocket-star":479,"http":480,"json":512,"messagepack":513,"x11":4352,"blake2b-8":45569,"blake2b-16":45570,"blake2b-24":45571,"blake2b-32":45572,"blake2b-40":45573,"blake2b-48":45574,"blake2b-56":45575,"blake2b-64":45576,"blake2b-72":45577,"blake2b-80":45578,"blake2b-88":45579,"blake2b-96":45580,"blake2b-104":45581,"blake2b-112":45582,"blake2b-120":45583,"blake2b-128":45584,"blake2b-136":45585,"blake2b-144":45586,"blake2b-152":45587,"blake2b-160":45588,"blake2b-168":45589,"blake2b-176":45590,"blake2b-184":45591,"blake2b-192":45592,"blake2b-200":45593,"blake2b-208":45594,"blake2b-216":45595,"blake2b-224":45596,"blake2b-232":45597,"blake2b-240":45598,"blake2b-248":45599,"blake2b-256":45600,"blake2b-264":45601,"blake2b-272":45602,"blake2b-280":45603,"blake2b-288":45604,"blake2b-296":45605,"blake2b-304":45606,"blake2b-312":45607,"blake2b-320":45608,"blake2b-328":45609,"blake2b-336":45610,"blake2b-344":45611,"blake2b-352":45612,"blake2b-360":45613,"blake2b-368":45614,"blake2b-376":45615,"blake2b-384":45616,"blake2b-392":45617,"blake2b-400":45618,"blake2b-408":45619,"blake2b-416":45620,"blake2b-424":45621,"blake2b-432":45622,"blake2b-440":45623,"blake2b-448":45624,"blake2b-456":45625,"blake2b-464":45626,"blake2b-472":45627,"blake2b-480":45628,"blake2b-488":45629,"blake2b-496":45630,"blake2b-504":45631,"blake2b-512":45632,"blake2s-8":45633,"blake2s-16":45634,"blake2s-24":45635,"blake2s-32":45636,"blake2s-40":45637,"blake2s-48":45638,"blake2s-56":45639,"blake2s-64":45640,"blake2s-72":45641,"blake2s-80":45642,"blake2s-88":45643,"blake2s-96":45644,"blake2s-104":45645,"blake2s-112":45646,"blake2s-120":45647,"blake2s-128":45648,"blake2s-136":45649,"blake2s-144":45650,"blake2s-152":45651,"blake2s-160":45652,"blake2s-168":45653,"blake2s-176":45654,"blake2s-184":45655,"blake2s-192":45656,"blake2s-200":45657,"blake2s-208":45658,"blake2s-216":45659,"blake2s-224":45660,"blake2s-232":45661,"blake2s-240":45662,"blake2s-248":45663,"blake2s-256":45664,"skein256-8":45825,"skein256-16":45826,"skein256-24":45827,"skein256-32":45828,"skein256-40":45829,"skein256-48":45830,"skein256-56":45831,"skein256-64":45832,"skein256-72":45833,"skein256-80":45834,"skein256-88":45835,"skein256-96":45836,"skein256-104":45837,"skein256-112":45838,"skein256-120":45839,"skein256-128":45840,"skein256-136":45841,"skein256-144":45842,"skein256-152":45843,"skein256-160":45844,"skein256-168":45845,"skein256-176":45846,"skein256-184":45847,"skein256-192":45848,"skein256-200":45849,"skein256-208":45850,"skein256-216":45851,"skein256-224":45852,"skein256-232":45853,"skein256-240":45854,"skein256-248":45855,"skein256-256":45856,"skein512-8":45857,"skein512-16":45858,"skein512-24":45859,"skein512-32":45860,"skein512-40":45861,"skein512-48":45862,"skein512-56":45863,"skein512-64":45864,"skein512-72":45865,"skein512-80":45866,"skein512-88":45867,"skein512-96":45868,"skein512-104":45869,"skein512-112":45870,"skein512-120":45871,"skein512-128":45872,"skein512-136":45873,"skein512-144":45874,"skein512-152":45875,"skein512-160":45876,"skein512-168":45877,"skein512-176":45878,"skein512-184":45879,"skein512-192":45880,"skein512-200":45881,"skein512-208":45882,"skein512-216":45883,"skein512-224":45884,"skein512-232":45885,"skein512-240":45886,"skein512-248":45887,"skein512-256":45888,"skein512-264":45889,"skein512-272":45890,"skein512-280":45891,"skein512-288":45892,"skein512-296":45893,"skein512-304":45894,"skein512-312":45895,"skein512-320":45896,"skein512-328":45897,"skein512-336":45898,"skein512-344":45899,"skein512-352":45900,"skein512-360":45901,"skein512-368":45902,"skein512-376":45903,"skein512-384":45904,"skein512-392":45905,"skein512-400":45906,"skein512-408":45907,"skein512-416":45908,"skein512-424":45909,"skein512-432":45910,"skein512-440":45911,"skein512-448":45912,"skein512-456":45913,"skein512-464":45914,"skein512-472":45915,"skein512-480":45916,"skein512-488":45917,"skein512-496":45918,"skein512-504":45919,"skein512-512":45920,"skein1024-8":45921,"skein1024-16":45922,"skein1024-24":45923,"skein1024-32":45924,"skein1024-40":45925,"skein1024-48":45926,"skein1024-56":45927,"skein1024-64":45928,"skein1024-72":45929,"skein1024-80":45930,"skein1024-88":45931,"skein1024-96":45932,"skein1024-104":45933,"skein1024-112":45934,"skein1024-120":45935,"skein1024-128":45936,"skein1024-136":45937,"skein1024-144":45938,"skein1024-152":45939,"skein1024-160":45940,"skein1024-168":45941,"skein1024-176":45942,"skein1024-184":45943,"skein1024-192":45944,"skein1024-200":45945,"skein1024-208":45946,"skein1024-216":45947,"skein1024-224":45948,"skein1024-232":45949,"skein1024-240":45950,"skein1024-248":45951,"skein1024-256":45952,"skein1024-264":45953,"skein1024-272":45954,"skein1024-280":45955,"skein1024-288":45956,"skein1024-296":45957,"skein1024-304":45958,"skein1024-312":45959,"skein1024-320":45960,"skein1024-328":45961,"skein1024-336":45962,"skein1024-344":45963,"skein1024-352":45964,"skein1024-360":45965,"skein1024-368":45966,"skein1024-376":45967,"skein1024-384":45968,"skein1024-392":45969,"skein1024-400":45970,"skein1024-408":45971,"skein1024-416":45972,"skein1024-424":45973,"skein1024-432":45974,"skein1024-440":45975,"skein1024-448":45976,"skein1024-456":45977,"skein1024-464":45978,"skein1024-472":45979,"skein1024-480":45980,"skein1024-488":45981,"skein1024-496":45982,"skein1024-504":45983,"skein1024-512":45984,"skein1024-520":45985,"skein1024-528":45986,"skein1024-536":45987,"skein1024-544":45988,"skein1024-552":45989,"skein1024-560":45990,"skein1024-568":45991,"skein1024-576":45992,"skein1024-584":45993,"skein1024-592":45994,"skein1024-600":45995,"skein1024-608":45996,"skein1024-616":45997,"skein1024-624":45998,"skein1024-632":45999,"skein1024-640":46000,"skein1024-648":46001,"skein1024-656":46002,"skein1024-664":46003,"skein1024-672":46004,"skein1024-680":46005,"skein1024-688":46006,"skein1024-696":46007,"skein1024-704":46008,"skein1024-712":46009,"skein1024-720":46010,"skein1024-728":46011,"skein1024-736":46012,"skein1024-744":46013,"skein1024-752":46014,"skein1024-760":46015,"skein1024-768":46016,"skein1024-776":46017,"skein1024-784":46018,"skein1024-792":46019,"skein1024-800":46020,"skein1024-808":46021,"skein1024-816":46022,"skein1024-824":46023,"skein1024-832":46024,"skein1024-840":46025,"skein1024-848":46026,"skein1024-856":46027,"skein1024-864":46028,"skein1024-872":46029,"skein1024-880":46030,"skein1024-888":46031,"skein1024-896":46032,"skein1024-904":46033,"skein1024-912":46034,"skein1024-920":46035,"skein1024-928":46036,"skein1024-936":46037,"skein1024-944":46038,"skein1024-952":46039,"skein1024-960":46040,"skein1024-968":46041,"skein1024-976":46042,"skein1024-984":46043,"skein1024-992":46044,"skein1024-1000":46045,"skein1024-1008":46046,"skein1024-1016":46047,"skein1024-1024":46048,"holochain-adr-v0":8417572,"holochain-adr-v1":8483108,"holochain-key-v0":9728292,"holochain-key-v1":9793828,"holochain-sig-v0":10645796,"holochain-sig-v1":10711332}')},function(e,t,r){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=r(32),t.createHash=t.Hash=r(52),t.createHmac=t.Hmac=r(164);var n=r(397),i=Object.keys(n),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return o};var a=r(167);t.pbkdf2=a.pbkdf2,t.pbkdf2Sync=a.pbkdf2Sync;var s=r(399);t.Cipher=s.Cipher,t.createCipher=s.createCipher,t.Cipheriv=s.Cipheriv,t.createCipheriv=s.createCipheriv,t.Decipher=s.Decipher,t.createDecipher=s.createDecipher,t.Decipheriv=s.Decipheriv,t.createDecipheriv=s.createDecipheriv,t.getCiphers=s.getCiphers,t.listCiphers=s.listCiphers;var f=r(416);t.DiffieHellmanGroup=f.DiffieHellmanGroup,t.createDiffieHellmanGroup=f.createDiffieHellmanGroup,t.getDiffieHellman=f.getDiffieHellman,t.createDiffieHellman=f.createDiffieHellman,t.DiffieHellman=f.DiffieHellman;var u=r(419);t.createSign=u.createSign,t.Sign=u.Sign,t.createVerify=u.createVerify,t.Verify=u.Verify,t.createECDH=r(446);var c=r(447);t.publicEncrypt=c.publicEncrypt,t.privateEncrypt=c.privateEncrypt,t.publicDecrypt=c.publicDecrypt,t.privateDecrypt=c.privateDecrypt;var h=r(450);t.randomFill=h.randomFill,t.randomFillSync=h.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(e,t,r){"use strict";var n=r(5).Buffer;function i(e){n.isBuffer(e)||(e=n.from(e));for(var t=e.length/4|0,r=new Array(t),i=0;i>>24]^c[p>>>16&255]^h[b>>>8&255]^d[255&m]^t[v++],a=u[p>>>24]^c[b>>>16&255]^h[m>>>8&255]^d[255&l]^t[v++],s=u[b>>>24]^c[m>>>16&255]^h[l>>>8&255]^d[255&p]^t[v++],f=u[m>>>24]^c[l>>>16&255]^h[p>>>8&255]^d[255&b]^t[v++],l=o,p=a,b=s,m=f;return o=(n[l>>>24]<<24|n[p>>>16&255]<<16|n[b>>>8&255]<<8|n[255&m])^t[v++],a=(n[p>>>24]<<24|n[b>>>16&255]<<16|n[m>>>8&255]<<8|n[255&l])^t[v++],s=(n[b>>>24]<<24|n[m>>>16&255]<<16|n[l>>>8&255]<<8|n[255&p])^t[v++],f=(n[m>>>24]<<24|n[l>>>16&255]<<16|n[p>>>8&255]<<8|n[255&b])^t[v++],[o>>>=0,a>>>=0,s>>>=0,f>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],f=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,f=0;f<256;++f){var u=s^s<<1^s<<2^s<<3^s<<4;u=u>>>8^255&u^99,r[a]=u,n[u]=a;var c=e[a],h=e[c],d=e[h],l=257*e[u]^16843008*u;i[0][a]=l<<24|l>>>8,i[1][a]=l<<16|l>>>16,i[2][a]=l<<8|l>>>24,i[3][a]=l,l=16843009*d^65537*h^257*c^16843008*a,o[0][u]=l<<24|l>>>8,o[1][u]=l<<16|l>>>16,o[2][u]=l<<8|l>>>24,o[3][u]=l,0===a?a=s=1:(a=c^e[e[e[d^c]]],s^=e[e[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function u(e){this._key=i(e),this._reset()}u.blockSize=16,u.keySize=32,u.prototype.blockSize=u.blockSize,u.prototype.keySize=u.keySize,u.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+6,n=4*(r+1),i=[],o=0;o>>24,a=f.SBOX[a>>>24]<<24|f.SBOX[a>>>16&255]<<16|f.SBOX[a>>>8&255]<<8|f.SBOX[255&a],a^=s[o/t|0]<<24):t>6&&o%t==4&&(a=f.SBOX[a>>>24]<<24|f.SBOX[a>>>16&255]<<16|f.SBOX[a>>>8&255]<<8|f.SBOX[255&a]),i[o]=i[o-t]^a}for(var u=[],c=0;c>>24]]^f.INV_SUB_MIX[1][f.SBOX[d>>>16&255]]^f.INV_SUB_MIX[2][f.SBOX[d>>>8&255]]^f.INV_SUB_MIX[3][f.SBOX[255&d]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=u},u.prototype.encryptBlockRaw=function(e){return a(e=i(e),this._keySchedule,f.SUB_MIX,f.SBOX,this._nRounds)},u.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),r=n.allocUnsafe(16);return r.writeUInt32BE(t[0],0),r.writeUInt32BE(t[1],4),r.writeUInt32BE(t[2],8),r.writeUInt32BE(t[3],12),r},u.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var r=a(e,this._invKeySchedule,f.INV_SUB_MIX,f.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},u.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},e.exports.AES=u},function(e,t,r){"use strict";var n=r(5).Buffer,i=r(91);e.exports=function(e,t,r,o){if(n.isBuffer(e)||(e=n.from(e,"binary")),t&&(n.isBuffer(t)||(t=n.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var a=r/8,s=n.alloc(a),f=n.alloc(o||0),u=n.alloc(0);a>0||o>0;){var c=new i;c.update(u),c.update(e),t&&c.update(t),u=c.digest();var h=0;if(a>0){var d=s.length-a;h=Math.min(a,u.length),u.copy(s,d,0,h),a-=h}if(h0){var l=f.length-o,p=Math.min(o,u.length-h);u.copy(f,l,h,h+p),o-=p}}return u.fill(0),{key:s,iv:f}}},function(e,t,r){"use strict";var n=t;n.version=r(421).version,n.utils=r(22),n.rand=r(45),n.curve=r(178),n.curves=r(98),n.ec=r(426),n.eddsa=r(429)},function(e,t,r){"use strict";var n=r(4),i=r(22),o=i.getNAF,a=i.getJSF,s=i.assert;function f(e,t){this.type=e,this.p=new n(t.p,16),this.red=t.prime?n.red(t.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=t.n&&new n(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function u(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=f,f.prototype.point=function(){throw new Error("Not implemented")},f.prototype.validate=function(){throw new Error("Not implemented")},f.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),n=o(t,1,this._bitLength),i=(1<=f;t--)u=(u<<1)+n[t];a.push(u)}for(var c=this.jpoint(null,null,null),h=this.jpoint(null,null,null),d=i;d>0;d--){for(f=0;f=0;u--){for(t=0;u>=0&&0===a[u];u--)t++;if(u>=0&&t++,f=f.dblp(t),u<0)break;var c=a[u];s(0!==c),f="affine"===e.type?c>0?f.mixedAdd(i[c-1>>1]):f.mixedAdd(i[-c-1>>1].neg()):c>0?f.add(i[c-1>>1]):f.add(i[-c-1>>1].neg())}return"affine"===e.type?f.toP():f},f.prototype._wnafMulAdd=function(e,t,r,n,i){for(var s=this._wnafT1,f=this._wnafT2,u=this._wnafT3,c=0,h=0;h=1;h-=2){var l=h-1,p=h;if(1===s[l]&&1===s[p]){var b=[t[l],null,null,t[p]];0===t[l].y.cmp(t[p].y)?(b[1]=t[l].add(t[p]),b[2]=t[l].toJ().mixedAdd(t[p].neg())):0===t[l].y.cmp(t[p].y.redNeg())?(b[1]=t[l].toJ().mixedAdd(t[p]),b[2]=t[l].add(t[p].neg())):(b[1]=t[l].toJ().mixedAdd(t[p]),b[2]=t[l].toJ().mixedAdd(t[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],v=a(r[l],r[p]);c=Math.max(v[0].length,c),u[l]=new Array(c),u[p]=new Array(c);for(var y=0;y=0;h--){for(var A=0;h>=0;){var S=!0;for(y=0;y=0&&A++,_=_.dblp(A),h<0)break;for(y=0;y0?E=f[y][M-1>>1]:M<0&&(E=f[y][-M-1>>1].neg()),_="affine"===E.type?_.mixedAdd(E):_.add(E))}}for(h=0;h=Math.ceil((e.bitLength()+1)/t.step)},u.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function u(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=f,f.prototype.point=function(){throw new Error("Not implemented")},f.prototype.validate=function(){throw new Error("Not implemented")},f.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),n=o(t,1,this._bitLength),i=(1<=f;t--)u=(u<<1)+n[t];a.push(u)}for(var c=this.jpoint(null,null,null),h=this.jpoint(null,null,null),d=i;d>0;d--){for(f=0;f=0;u--){for(t=0;u>=0&&0===a[u];u--)t++;if(u>=0&&t++,f=f.dblp(t),u<0)break;var c=a[u];s(0!==c),f="affine"===e.type?c>0?f.mixedAdd(i[c-1>>1]):f.mixedAdd(i[-c-1>>1].neg()):c>0?f.add(i[c-1>>1]):f.add(i[-c-1>>1].neg())}return"affine"===e.type?f.toP():f},f.prototype._wnafMulAdd=function(e,t,r,n,i){for(var s=this._wnafT1,f=this._wnafT2,u=this._wnafT3,c=0,h=0;h=1;h-=2){var l=h-1,p=h;if(1===s[l]&&1===s[p]){var b=[t[l],null,null,t[p]];0===t[l].y.cmp(t[p].y)?(b[1]=t[l].add(t[p]),b[2]=t[l].toJ().mixedAdd(t[p].neg())):0===t[l].y.cmp(t[p].y.redNeg())?(b[1]=t[l].toJ().mixedAdd(t[p]),b[2]=t[l].add(t[p].neg())):(b[1]=t[l].toJ().mixedAdd(t[p]),b[2]=t[l].toJ().mixedAdd(t[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],v=a(r[l],r[p]);c=Math.max(v[0].length,c),u[l]=new Array(c),u[p]=new Array(c);for(var y=0;y=0;h--){for(var A=0;h>=0;){var S=!0;for(y=0;y=0&&A++,_=_.dblp(A),h<0)break;for(y=0;y0?E=f[y][M-1>>1]:M<0&&(E=f[y][-M-1>>1].neg()),_="affine"===E.type?_.mixedAdd(E):_.add(E))}}for(h=0;h=Math.ceil((e.bitLength()+1)/t.step)},u.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(f<<1|s>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(u<<1|c>>>31),r=o^(c<<1|u>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=s^(h<<1|d>>>31),r=f^(d<<1|h>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=u^(l<<1|p>>>31),r=c^(p<<1|l>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],m=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,fe=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,T=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,g=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,U=e[45]<<29|e[44]>>>3,C=e[44]<<29|e[45]>>>3,E=e[6]<<28|e[7]>>>4,M=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,F=e[26]<<25|e[27]>>>7,D=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,k=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,x=e[18]<<20|e[19]>>>12,I=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=b^~v&g,e[1]=m^~y&w,e[10]=E^~x&P,e[11]=M^~I&N,e[20]=B^~j&F,e[21]=T^~L&D,e[30]=V^~W&Y,e[31]=G^~$&Z,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=x^~P&O,e[13]=I^~N&R,e[22]=j^~F&z,e[23]=L^~D&q,e[32]=W^~Y&J,e[33]=$^~Z&X,e[42]=ne^~oe&se,e[43]=ie^~ae&fe,e[4]=g^~_&A,e[5]=w^~k&S,e[14]=P^~O&U,e[15]=N^~R&C,e[24]=F^~z&H,e[25]=D^~q&K,e[34]=Y^~J&Q,e[35]=Z^~X&ee,e[44]=oe^~se&ue,e[45]=ae^~fe&ce,e[6]=_^~A&b,e[7]=k^~S&m,e[16]=O^~U&E,e[17]=R^~C&M,e[26]=z^~H&B,e[27]=q^~K&T,e[36]=J^~Q&V,e[37]=X^~ee&G,e[46]=se^~ue&te,e[47]=fe^~ce&re,e[8]=A^~b&v,e[9]=S^~m&y,e[18]=U^~E&x,e[19]=C^~M&I,e[28]=H^~B&j,e[29]=K^~T&L,e[38]=Q^~V&W,e[39]=ee^~G&$,e[48]=ue^~te&ne,e[49]=ce^~re&ie,e[0]^=a[n],e[1]^=a[n+1]},f=function(e){return function(t){var r;if("0x"===t.slice(0,2)){r=[];for(var a=2,f=t.length;a>2]|=t[l]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|63&r)<=57344?(f[m>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<=u){for(e.start=m-u,e.block=f[c],m=0;m>2]|=i[3&m],e.lastByteIndex===u)for(f[0]=f[c],m=1;m>4&15]+n[15&p]+n[p>>12&15]+n[p>>8&15]+n[p>>20&15]+n[p>>16&15]+n[p>>28&15]+n[p>>24&15];v%c==0&&(s(d),m=0)}return"0x"+b}(function(e){return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(e<<1)>>5,outputBlocks:e>>5,s:(t=[0,0,0,0,0,0,0,0,0,0],[].concat(t,t,t,t,t))};var t}(e),r)}};e.exports={keccak256:f(256),keccak512:f(512),keccak256s:f(256),keccak512s:f(512)}},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,i="~";function o(){}function a(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function s(e,t,r,n,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var s=new a(r,n||e,o),f=i?i+t:t;return e._events[f]?e._events[f].fn?e._events[f]=[e._events[f],s]:e._events[f].push(s):(e._events[f]=s,e._eventsCount++),e}function f(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}function u(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),u.prototype.eventNames=function(){var e,t,r=[];if(0===this._eventsCount)return r;for(t in e=this._events)n.call(e,t)&&r.push(i?t.slice(1):t);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},u.prototype.listeners=function(e){var t=i?i+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,o=r.length,a=new Array(o);n0&&a.length>i&&!a.warned){a.warned=!0;var f=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");f.name="MaxListenersExceededWarning",f.emitter=e,f.type=t,f.count=a.length,s=f,console&&console.warn&&console.warn(s)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=l.bind(n);return i.listener=r,n.wrapFn=i,i}function b(e,t,r){var n=e._events;if(void 0===n)return[];var i=n[t];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var f=i[e];if(void 0===f)return!1;if("function"==typeof f)a(f,this,t);else{var u=f.length,c=v(f,u);for(r=0;r=0;o--)if(r[o]===t||r[o].listener===t){a=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},f.prototype.listeners=function(e){return b(this,e,!0)},f.prototype.rawListeners=function(e){return b(this,e,!1)},f.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},f.prototype.listenerCount=m,f.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){"use strict";(function(t,n,i){var o=r(59);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=y;var s,f=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?n:o.nextTick;y.WritableState=v;var u=r(43);u.inherits=r(3);var c={deprecate:r(252)},h=r(118),d=r(5).Buffer,l=i.Uint8Array||function(){};var p,b=r(119);function m(){}function v(e,t){s=s||r(33),e=e||{};var n=t instanceof s;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,u=e.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(u||0===u)?u:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var h=!1===e.decodeStrings;this.decodeStrings=!h,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(o.nextTick(i,n),o.nextTick(S,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),S(e,t))}(e,r,n,t,i);else{var a=k(r);a||r.corked||r.bufferProcessing||!r.bufferedRequest||_(e,r),n?f(w,e,r,a,i):w(e,r,a,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function y(e){if(s=s||r(33),!(p.call(y,this)||this instanceof s))return new y(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),h.call(this)}function g(e,t,r,n,i,o,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function w(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),S(e,t)}function _(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),o=t.corkedRequestsFree;o.entry=r;for(var s=0,f=!0;r;)i[s]=r,r.isBuf||(f=!1),r=r.next,s+=1;i.allBuffers=f,g(e,t,!0,t.length,i,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;r;){var u=r.chunk,c=r.encoding,h=r.callback;if(g(e,t,!1,t.objectMode?1:u.length,u,c,h),r=r.next,t.bufferedRequestCount--,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequest=r,t.bufferProcessing=!1}function k(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function A(e,t){e._final((function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),S(e,t)}))}function S(e,t){var r=k(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,o.nextTick(A,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}u.inherits(y,h),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:c.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(y,Symbol.hasInstance,{value:function(e){return!!p.call(this,e)||this===y&&(e&&e._writableState instanceof v)}})):p=function(e){return e instanceof this},y.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},y.prototype.write=function(e,t,r){var n,i=this._writableState,a=!1,s=!i.objectMode&&(n=e,d.isBuffer(n)||n instanceof l);return s&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"==typeof t&&(r=t,t=null),s?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=m),i.ended?function(e,t){var r=new Error("write after end");e.emit("error",r),o.nextTick(t,r)}(this,r):(s||function(e,t,r,n){var i=!0,a=!1;return null===r?a=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),o.nextTick(n,a),i=!1),i}(this,i,e,r))&&(i.pendingcb++,a=function(e,t,r,n,i,o){if(!r){var a=function(e,t,r){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=d.from(t,r));return t}(t,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=t.objectMode?1:n.length;t.length+=s;var f=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,S(e,t),r&&(t.finished?o.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,n,r)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),y.prototype.destroy=b.destroy,y.prototype._undestroy=b.undestroy,y.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,r(9),r(120).setImmediate,r(8))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){this.listeners={}}return e.prototype.addEventListener=function(e,t){e=e.toLowerCase(),this.listeners[e]=this.listeners[e]||[],this.listeners[e].push(t.handleEvent||t)},e.prototype.removeEventListener=function(e,t){if(e=e.toLowerCase(),this.listeners[e]){var r=this.listeners[e].indexOf(t.handleEvent||t);r<0||this.listeners[e].splice(r,1)}},e.prototype.dispatchEvent=function(e){var t=e.type.toLowerCase();if(e.target=this,this.listeners[t])for(var r=0,n=this.listeners[t];r>8,a=255&i;o?r.push(o,a):r.push(a)}return r},n.zero2=i,n.toHex=o,n.encode=function(e,t){return"hex"===t?o(e):e}},function(e,t,r){"use strict";var n,i=t,o=r(46),a=r(129),s=r(21).assert;function f(e){"short"===e.type?this.curve=new a.short(e):"edwards"===e.type?this.curve=new a.edwards(e):this.curve=new a.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function u(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new f(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=f,u("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),u("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),u("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),u("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),u("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),u("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),u("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(291)}catch(e){n=void 0}u("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionFragment=t.ConstructorFragment=t.EventFragment=t.Fragment=t.ParamType=t.FormatTypes=void 0;var i=n(r(19)),o=n(r(20)),a=n(r(15)),s=n(r(6)),f=n(r(7)),u=r(38),c=r(65),h=r(25),d=r(48);function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,a.default)(e);if(t){var i=(0,a.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,o.default)(this,r)}}var p=new h.Logger(d.version),b={},m={calldata:!0,memory:!0,storage:!0},v={calldata:!0,memory:!0};function y(e,t){if("bytes"===e||"string"===e){if(m[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&v[t])return!0;return(m[t]||"payable"===t)&&p.throwArgumentError("invalid modifier","name",t),!1}function g(e,t){for(var r in t)(0,c.defineReadOnly)(e,r,t[r])}var w=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"});t.FormatTypes=w;var _=new RegExp(/^(.*)\[([0-9]*)\]$/),k=function(){function e(t,r){(0,s.default)(this,e),t!==b&&p.throwError("use fromString",h.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),g(this,r);var n=this.type.match(_);g(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:e.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}return(0,f.default)(e,[{key:"format",value:function(e){if(e||(e=w.sighash),w[e]||p.throwArgumentError("invalid format type","format",e),e===w.json){var t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map((function(t){return JSON.parse(t.format(e))}))),JSON.stringify(t)}var r="";return"array"===this.baseType?(r+=this.arrayChildren.format(e),r+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==w.sighash&&(r+=this.type),r+="("+this.components.map((function(t){return t.format(e)})).join(e===w.full?", ":",")+")"):r+=this.type,e!==w.sighash&&(!0===this.indexed&&(r+=" indexed"),e===w.full&&this.name&&(r+=" "+this.name)),r}}],[{key:"from",value:function(t,r){return"string"==typeof t?e.fromString(t,r):e.fromObject(t)}},{key:"fromObject",value:function(t){return e.isParamType(t)?t:new e(b,{name:t.name||null,type:O(t.type),indexed:null==t.indexed?null:!!t.indexed,components:t.components?t.components.map(e.fromObject):null})}},{key:"fromString",value:function(t,r){return function(t){return e.fromObject({name:t.name,type:t.type,indexed:t.indexed,components:t.components})}(function(e,t){var r=e;function n(t){p.throwArgumentError("unexpected character at position ".concat(t),"param",e)}function i(e){var r={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(r.indexed=!1),r}e=e.replace(/\s/g," ");for(var o={type:"",name:"",state:{allowType:!0}},a=o,s=0;s2&&p.throwArgumentError("invalid human-readable ABI signature","value",e),r[1].match(/^[0-9]+$/)||p.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=u.BigNumber.from(r[1]),r[0]):e}function x(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach((function(e){switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}}))}function I(e){var t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&p.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&p.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||p.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.constant?t.stateMutability="view":t.stateMutability=t.payable?"payable":"nonpayable",t.payable&&t.constant&&p.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&p.throwArgumentError("unable to determine stateMutability","value",e),t}t.EventFragment=E;var P=function(e){(0,i.default)(r,e);var t=l(r);function r(){return(0,s.default)(this,r),t.apply(this,arguments)}return(0,f.default)(r,[{key:"format",value:function(e){if(e||(e=w.sighash),w[e]||p.throwArgumentError("invalid format type","format",e),e===w.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payble:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((function(t){return JSON.parse(t.format(e))}))});e===w.sighash&&p.throwError("cannot format a constructor for sighash",h.Logger.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});var t="constructor("+this.inputs.map((function(t){return t.format(e)})).join(e===w.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}}],[{key:"from",value:function(e){return"string"==typeof e?r.fromString(e):r.fromObject(e)}},{key:"fromObject",value:function(e){if(r.isConstructorFragment(e))return e;"constructor"!==e.type&&p.throwArgumentError("invalid constructor object","value",e);var t=I(e);t.constant&&p.throwArgumentError("constructor cannot be constant","value",e);var n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(k.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?u.BigNumber.from(e.gas):null};return new r(b,n)}},{key:"fromString",value:function(e){var t={type:"constructor"},n=(e=M(e,t)).match(C);return n&&"constructor"===n[1].trim()||p.throwArgumentError("invalid constructor string","value",e),t.inputs=A(n[2].trim(),!1),x(n[3].trim(),t),r.fromObject(t)}},{key:"isConstructorFragment",value:function(e){return e&&e._isFragment&&"constructor"===e.type}}]),r}(S);t.ConstructorFragment=P;var N=function(e){(0,i.default)(r,e);var t=l(r);function r(){return(0,s.default)(this,r),t.apply(this,arguments)}return(0,f.default)(r,[{key:"format",value:function(e){if(e||(e=w.sighash),w[e]||p.throwArgumentError("invalid format type","format",e),e===w.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payble:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((function(t){return JSON.parse(t.format(e))})),ouputs:this.outputs.map((function(t){return JSON.parse(t.format(e))}))});var t="";return e!==w.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((function(t){return t.format(e)})).join(e===w.full?", ":",")+") ",e!==w.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map((function(t){return t.format(e)})).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}}],[{key:"from",value:function(e){return"string"==typeof e?r.fromString(e):r.fromObject(e)}},{key:"fromObject",value:function(e){if(r.isFunctionFragment(e))return e;"function"!==e.type&&p.throwArgumentError("invalid function object","value",e);var t=I(e),n={type:e.type,name:U(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(k.fromObject):[],outputs:e.outputs?e.outputs.map(k.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?u.BigNumber.from(e.gas):null};return new r(b,n)}},{key:"fromString",value:function(e){var t={type:"function"},n=(e=M(e,t)).split(" returns ");n.length>2&&p.throwArgumentError("invalid function string","value",e);var i=n[0].match(C);if(i||p.throwArgumentError("invalid function signature","value",e),t.name=i[1].trim(),t.name&&U(t.name),t.inputs=A(i[2],!1),x(i[3].trim(),t),n.length>1){var o=n[1].match(C);""==o[1].trim()&&""==o[3].trim()||p.throwArgumentError("unexpected tokens","value",e),t.outputs=A(o[2],!1)}else t.outputs=[];return r.fromObject(t)}},{key:"isFunctionFragment",value:function(e){return e&&e._isFragment&&"function"===e.type}}]),r}(P);function O(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}t.FunctionFragment=N;var R=new RegExp("^[A-Za-z_][A-Za-z0-9_]*$");function U(e){return e&&e.match(R)||p.throwArgumentError('invalid identifier "'.concat(e,'"'),"value",e),e}var C=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toUtf8Bytes=d,t._toEscapedUtf8String=function(e,t){return'"'+h(e,t).map((function(e){if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?l(e):l(55296+((e-=65536)>>10&1023))+l(56320+(1023&e))})).join("")+'"'},t._toUtf8String=p,t.toUtf8String=function(e,t){return p(h(e,t))},t.toUtf8CodePoints=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.current;return h(d(e,t))},t.Utf8ErrorFuncs=t.Utf8ErrorReason=t.UnicodeNormalizationForm=void 0;var n,i,o=r(66),a=r(67),s=r(327),f=new a.Logger(s.version);function u(e,t,r,n,o){if(e===i.BAD_PREFIX||e===i.UNEXPECTED_CONTINUE){for(var a=0,s=t+1;s>6==2;s++)a++;return a}return e===i.OVERRUN?r.length-t-1:0}t.UnicodeNormalizationForm=n,function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(n||(t.UnicodeNormalizationForm=n={})),t.Utf8ErrorReason=i,function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(i||(t.Utf8ErrorReason=i={}));var c=Object.freeze({error:function(e,t,r,n,i){return f.throwArgumentError("invalid codepoint at offset ".concat(t,"; ").concat(e),"bytes",r)},ignore:u,replace:function(e,t,r,n,o){return e===i.OVERLONG?(n.push(o),0):(n.push(65533),u(e,t,r))}});function h(e,t){null==t&&(t=c.error),e=(0,o.arrayify)(e);for(var r=[],n=0;n>7!=0){var s=null,f=null;if(192==(224&a))s=1,f=127;else if(224==(240&a))s=2,f=2047;else{if(240!=(248&a)){n+=t(128==(192&a)?i.UNEXPECTED_CONTINUE:i.BAD_PREFIX,n-1,e,r);continue}s=3,f=65535}if(n-1+s>=e.length)n+=t(i.OVERRUN,n-1,e,r);else{for(var u=a&(1<<8-s-1)-1,h=0;h1114111?n+=t(i.OUT_OF_RANGE,n-1-s,e,r,u):u>=55296&&u<=57343?n+=t(i.UTF16_SURROGATE,n-1-s,e,r,u):u<=f?n+=t(i.OVERLONG,n-1-s,e,r,u):r.push(u))}}else r.push(a)}return r}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.current;t!=n.current&&(f.checkNormalize(),e=e.normalize(t));for(var r=[],i=0;i>6|192),r.push(63&a|128);else if(55296==(64512&a)){i++;var s=e.charCodeAt(i);if(i>=e.length||56320!=(64512&s))throw new Error("invalid utf-8 string");var u=65536+((1023&a)<<10)+(1023&s);r.push(u>>18|240),r.push(u>>12&63|128),r.push(u>>6&63|128),r.push(63&u|128)}else r.push(a>>12|224),r.push(a>>6&63|128),r.push(63&a|128)}return(0,o.arrayify)(r)}function l(e){var t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function p(e){return e.map((function(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e)))})).join("")}t.Utf8ErrorFuncs=c},function(e,t,r){"use strict";var n=r(2).Buffer,i=r(357),o=r(49),a=r(363);function s(e){t.decode(e)}t.names=a.names,t.codes=a.codes,t.defaultLengths=a.defaultLengths,t.toHexString=function(e){if(!n.isBuffer(e))throw new Error("must be passed a buffer");return e.toString("hex")},t.fromHexString=function(e){return n.from(e,"hex")},t.toB58String=function(e){if(!n.isBuffer(e))throw new Error("must be passed a buffer");return i.encode("base58btc",e).toString().slice(1)},t.fromB58String=function(e){var t=e;return n.isBuffer(e)&&(t=e.toString()),i.decode("z"+t)},t.decode=function(e){if(!n.isBuffer(e))throw new Error("multihash must be a Buffer");if(e.length<2)throw new Error("multihash too short. must be > 2 bytes.");var r=o.decode(e);if(!t.isValidCode(r))throw new Error("multihash unknown function code: 0x".concat(r.toString(16)));e=e.slice(o.decode.bytes);var i=o.decode(e);if(i<0)throw new Error("multihash invalid length: ".concat(i));if((e=e.slice(o.decode.bytes)).length!==i)throw new Error("multihash length inconsistent: 0x".concat(e.toString("hex")));return{code:r,name:a.codes[r],length:i,digest:e}},t.encode=function(e,r,i){if(!e||void 0===r)throw new Error("multihash encode requires at least two args: digest, code");var a=t.coerceCode(r);if(!n.isBuffer(e))throw new Error("digest should be a Buffer");if(null==i&&(i=e.length),i&&e.length!==i)throw new Error("digest length should be equal to specified length.");return n.concat([n.from(o.encode(a)),n.from(o.encode(i)),e])},t.coerceCode=function(e){var r=e;if("string"==typeof e){if(void 0===a.names[e])throw new Error("Unrecognized hash function named: ".concat(e));r=a.names[e]}if("number"!=typeof r)throw new Error("Hash function code should be a number. Got: ".concat(r));if(void 0===a.codes[r]&&!t.isAppCode(r))throw new Error("Unrecognized function code: ".concat(r));return r},t.isAppCode=function(e){return e>0&&e<16},t.isValidCode=function(e){return!!t.isAppCode(e)||!!a.codes[e]},t.validate=s,t.prefix=function(e){return s(e),e.slice(0,2)}},function(e,t,r){"use strict";r(387);var n=function(e,t){return parseInt(e.slice(2*t+2,2*t+4),16)},i=function(e){return(e.length-2)/2},o=function(e){for(var t=[],r=2,n=e.length;r>6|192);else{if(i>55295&&i<56320){if(++n==e.length)return null;var o=e.charCodeAt(n);if(o<56320||o>57343)return null;r+=t((i=65536+((1023&i)<<10)+(1023&o))>>18|240),r+=t(i>>12&63|128)}else r+=t(i>>12|224);r+=t(i>>6&63|128)}r+=t(63&i|128)}}return r},toString:function(e){for(var t="",r=0,o=i(e);r127){if(a>191&&a<224){if(r>=o)return null;a=(31&a)<<6|63&n(e,r)}else if(a>223&&a<240){if(r+1>=o)return null;a=(15&a)<<12|(63&n(e,r))<<6|63&n(e,++r)}else{if(!(a>239&&a<248))return null;if(r+2>=o)return null;a=(7&a)<<18|(63&n(e,r))<<12|(63&n(e,++r))<<6|63&n(e,++r)}++r}if(a<=65535)t+=String.fromCharCode(a);else{if(!(a<=1114111))return null;a-=65536,t+=String.fromCharCode(a>>10|55296),t+=String.fromCharCode(1023&a|56320)}}return t},fromNumber:function(e){var t=e.toString(16);return t.length%2==0?"0x"+t:"0x0"+t},toNumber:function(e){return parseInt(e.slice(2),16)},fromNat:function(e){return"0x0"===e?"0x":e.length%2==0?e:"0x0"+e.slice(2)},toNat:function(e){return"0"===e[2]?"0x"+e.slice(3):e},fromArray:a,toArray:o,fromUint8Array:function(e){return a([].slice.call(e,0))},toUint8Array:function(e){return new Uint8Array(o(e))}}},function(e,t,r){"use strict";var n=r(3),i=r(161),o=r(5).Buffer,a=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function f(e,t){return e<>>32-t}function u(e,t,r,n,i,o,a){return f(e+(t&r|~t&n)+i+o|0,a)+t|0}function c(e,t,r,n,i,o,a){return f(e+(t&n|r&~n)+i+o|0,a)+t|0}function h(e,t,r,n,i,o,a){return f(e+(t^r^n)+i+o|0,a)+t|0}function d(e,t,r,n,i,o,a){return f(e+(r^(t|~n))+i+o|0,a)+t|0}n(s,i),s.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,i=this._c,o=this._d;r=u(r,n,i,o,e[0],3614090360,7),o=u(o,r,n,i,e[1],3905402710,12),i=u(i,o,r,n,e[2],606105819,17),n=u(n,i,o,r,e[3],3250441966,22),r=u(r,n,i,o,e[4],4118548399,7),o=u(o,r,n,i,e[5],1200080426,12),i=u(i,o,r,n,e[6],2821735955,17),n=u(n,i,o,r,e[7],4249261313,22),r=u(r,n,i,o,e[8],1770035416,7),o=u(o,r,n,i,e[9],2336552879,12),i=u(i,o,r,n,e[10],4294925233,17),n=u(n,i,o,r,e[11],2304563134,22),r=u(r,n,i,o,e[12],1804603682,7),o=u(o,r,n,i,e[13],4254626195,12),i=u(i,o,r,n,e[14],2792965006,17),r=c(r,n=u(n,i,o,r,e[15],1236535329,22),i,o,e[1],4129170786,5),o=c(o,r,n,i,e[6],3225465664,9),i=c(i,o,r,n,e[11],643717713,14),n=c(n,i,o,r,e[0],3921069994,20),r=c(r,n,i,o,e[5],3593408605,5),o=c(o,r,n,i,e[10],38016083,9),i=c(i,o,r,n,e[15],3634488961,14),n=c(n,i,o,r,e[4],3889429448,20),r=c(r,n,i,o,e[9],568446438,5),o=c(o,r,n,i,e[14],3275163606,9),i=c(i,o,r,n,e[3],4107603335,14),n=c(n,i,o,r,e[8],1163531501,20),r=c(r,n,i,o,e[13],2850285829,5),o=c(o,r,n,i,e[2],4243563512,9),i=c(i,o,r,n,e[7],1735328473,14),r=h(r,n=c(n,i,o,r,e[12],2368359562,20),i,o,e[5],4294588738,4),o=h(o,r,n,i,e[8],2272392833,11),i=h(i,o,r,n,e[11],1839030562,16),n=h(n,i,o,r,e[14],4259657740,23),r=h(r,n,i,o,e[1],2763975236,4),o=h(o,r,n,i,e[4],1272893353,11),i=h(i,o,r,n,e[7],4139469664,16),n=h(n,i,o,r,e[10],3200236656,23),r=h(r,n,i,o,e[13],681279174,4),o=h(o,r,n,i,e[0],3936430074,11),i=h(i,o,r,n,e[3],3572445317,16),n=h(n,i,o,r,e[6],76029189,23),r=h(r,n,i,o,e[9],3654602809,4),o=h(o,r,n,i,e[12],3873151461,11),i=h(i,o,r,n,e[15],530742520,16),r=d(r,n=h(n,i,o,r,e[2],3299628645,23),i,o,e[0],4096336452,6),o=d(o,r,n,i,e[7],1126891415,10),i=d(i,o,r,n,e[14],2878612391,15),n=d(n,i,o,r,e[5],4237533241,21),r=d(r,n,i,o,e[12],1700485571,6),o=d(o,r,n,i,e[3],2399980690,10),i=d(i,o,r,n,e[10],4293915773,15),n=d(n,i,o,r,e[1],2240044497,21),r=d(r,n,i,o,e[8],1873313359,6),o=d(o,r,n,i,e[15],4264355552,10),i=d(i,o,r,n,e[6],2734768916,15),n=d(n,i,o,r,e[13],1309151649,21),r=d(r,n,i,o,e[4],4149444226,6),o=d(o,r,n,i,e[11],3174756917,10),i=d(i,o,r,n,e[2],718787259,15),n=d(n,i,o,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=o.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=s},function(e,t,r){"use strict";var n=r(2).Buffer,i=r(3),o=r(161),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],f=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],u=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],c=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function l(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<>>32-t}function b(e,t,r,n,i,o,a,s){return p(e+(t^r^n)+o+a|0,s)+i|0}function m(e,t,r,n,i,o,a,s){return p(e+(t&r|~t&n)+o+a|0,s)+i|0}function v(e,t,r,n,i,o,a,s){return p(e+((t|~r)^n)+o+a|0,s)+i|0}function y(e,t,r,n,i,o,a,s){return p(e+(t&n|r&~n)+o+a|0,s)+i|0}function g(e,t,r,n,i,o,a,s){return p(e+(t^(r|~n))+o+a|0,s)+i|0}i(l,o),l.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,l=0|this._e,w=0|this._a,_=0|this._b,k=0|this._c,A=0|this._d,S=0|this._e,E=0;E<80;E+=1){var M,x;E<16?(M=b(r,n,i,o,l,e[s[E]],h[0],u[E]),x=g(w,_,k,A,S,e[f[E]],d[0],c[E])):E<32?(M=m(r,n,i,o,l,e[s[E]],h[1],u[E]),x=y(w,_,k,A,S,e[f[E]],d[1],c[E])):E<48?(M=v(r,n,i,o,l,e[s[E]],h[2],u[E]),x=v(w,_,k,A,S,e[f[E]],d[2],c[E])):E<64?(M=y(r,n,i,o,l,e[s[E]],h[3],u[E]),x=m(w,_,k,A,S,e[f[E]],d[3],c[E])):(M=g(r,n,i,o,l,e[s[E]],h[4],u[E]),x=b(w,_,k,A,S,e[f[E]],d[4],c[E])),r=l,l=o,o=p(i,10),i=n,n=M,w=S,S=A,A=p(k,10),k=_,_=x}var I=this._b+i+A|0;this._b=this._c+o+S|0,this._c=this._d+l+w|0,this._d=this._e+r+_|0,this._e=this._a+n+k|0,this._a=I},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=l},function(e,t,r){"use strict";var n=e.exports=function(e){e=e.toLowerCase();var t=n[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};n.sha=r(392),n.sha1=r(393),n.sha224=r(394),n.sha256=r(162),n.sha384=r(395),n.sha512=r(163)},function(e,t,r){"use strict";t.utils=r(401),t.Cipher=r(402),t.DES=r(403),t.CBC=r(404),t.EDE=r(405)},function(e,t,r){"use strict";var n=r(406),i=r(414),o=r(173);t.createCipher=t.Cipher=n.createCipher,t.createCipheriv=t.Cipheriv=n.createCipheriv,t.createDecipher=t.Decipher=i.createDecipher,t.createDecipheriv=t.Decipheriv=i.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(o)}},function(e,t,r){"use strict";var n={ECB:r(407),CBC:r(408),CFB:r(409),CFB8:r(410),CFB1:r(411),OFB:r(412),CTR:r(171),GCM:r(171)},i=r(173);for(var o in i)i[o].module=n[i[o].mode];e.exports=i},function(e,t,r){"use strict";(function(t){var n=r(4),i=r(32);function o(e,r){var i=function(e){var t=a(e);return{blinder:t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(r),o=r.modulus.byteLength(),s=(n.mont(r.modulus),new n(e).mul(i.blinder).umod(r.modulus)),f=s.toRed(n.mont(r.prime1)),u=s.toRed(n.mont(r.prime2)),c=r.coefficient,h=r.prime1,d=r.prime2,l=f.redPow(r.exponent1),p=u.redPow(r.exponent2);l=l.fromRed(),p=p.fromRed();var b=l.isub(p).imul(c).umod(h);return b.imul(d),p.iadd(b),new t(p.imul(i.unblinder).umod(r.modulus).toArray(!1,o))}function a(e){for(var t=e.modulus.byteLength(),r=new n(i(t));r.cmp(e.modulus)>=0||!r.umod(e.prime1)||!r.umod(e.prime2);)r=new n(i(t));return r}e.exports=o,o.getr=a}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n,i=t,o=r(46),a=r(178),s=r(22).assert;function f(e){"short"===e.type?this.curve=new a.short(e):"edwards"===e.type?this.curve=new a.edwards(e):this.curve=new a.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function u(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new f(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=f,u("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),u("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),u("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),u("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),u("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),u("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),u("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(425)}catch(e){n=void 0}u("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(e,t,r){"use strict";e.exports=r(457)(r(461))},function(e,t,r){"use strict";var n,i=t,o=r(101),a=r(199),s=r(23).assert;function f(e){"short"===e.type?this.curve=new a.short(e):"edwards"===e.type?this.curve=new a.edwards(e):this.curve=new a.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function u(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new f(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=f,u("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),u("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),u("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),u("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),u("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),u("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),u("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(483)}catch(e){n=void 0}u("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(e,t,r){"use strict";var n=t;n.utils=r(28),n.common=r(56),n.sha=r(477),n.ripemd=r(481),n.hmac=r(482),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var n=r(14);function i(e,t){if("00"===e.slice(0,2))throw new Error("invalid RLP: extra zeros");return parseInt(e,t)}function o(t,r){if(t<56)return e.from([t+r]);var n=s(t),i=s(r+55+n.length/2);return e.from(i+n,"hex")}function a(e){return"0x"===e.slice(0,2)}function s(e){if(e<0)throw new Error("Invalid integer as argument, must be unsigned!");var t=e.toString(16);return t.length%2?"0"+t:t}function f(t){if(!e.isBuffer(t)){if("string"==typeof t)return a(t)?e.from((i="string"!=typeof(o=t)?o:a(o)?o.slice(2):o).length%2?"0"+i:i,"hex"):e.from(t);if("number"==typeof t)return t?(r=s(t),e.from(r,"hex")):e.from([]);if(null==t)return e.from([]);if(t instanceof Uint8Array)return e.from(t);if(n.isBN(t))return e.from(t.toArray());throw new Error("invalid type")}var r,i,o;return t}t.encode=function t(r){if(Array.isArray(r)){for(var n=[],i=0;ir.length)throw new Error("invalid rlp: total length is larger than the data");if(0===(s=r.slice(o,h)).length)throw new Error("invalid rlp, List has a invalid length");for(;s.length;)f=t(s),u.push(f.data),s=f.remainder;return{data:u,remainder:r.slice(h)}}(f(t));if(r)return n;if(0!==n.remainder.length)throw new Error("invalid remainder");return n.data},t.getLength=function(t){if(!t||0===t.length)return e.from([]);var r=f(t),n=r[0];if(n<=127)return r.length;if(n<=183)return n-127;if(n<=191)return n-182;if(n<=247)return n-191;var o=n-246;return o+i(r.slice(1,o).toString("hex"),16)}}).call(this,r(2).Buffer)},function(e,t,r){"use strict"; +var n=r(204),i=r(205),o=r(104);function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,e){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function p(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return D(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return q(t).length;default:if(n)return D(t).length;e=(""+e).toLowerCase(),n=!0}}function b(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return O(this,e,r);case"utf8":case"utf-8":return E(this,e,r);case"ascii":return x(this,e,r);case"latin1":case"binary":return I(this,e,r);case"base64":return M(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function m(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:v(t,e,r,n,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):v(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(t,e,r,n,i){var o,a=1,s=t.length,u=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}function f(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var c=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var h=!0,d=0;di&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function M(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function E(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:f>223?3:f>191?2:1;if(i+h<=r)switch(h){case 1:f<128&&(c=f);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&f)<<6|63&o)>127&&(c=u);break;case 3:o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&(u=(15&f)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&f)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=h}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(e>>>=0),s=Math.min(o,a),f=this.slice(n,i),c=t.slice(e,r),h=0;hi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return g(this,t,e,r);case"utf8":case"utf-8":return w(this,t,e,r);case"ascii":return _(this,t,e,r);case"latin1":case"binary":return k(this,t,e,r);case"base64":return A(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function x(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function B(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function T(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function R(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function U(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function N(t,e,r,n,o){return o||U(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function j(t,e,r,n,o){return o||U(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||C(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||C(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||C(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||C(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||C(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||C(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||C(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||C(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||C(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||C(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||C(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||C(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||C(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||C(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||C(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||C(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||B(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):T(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):T(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):R(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):R(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);B(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):T(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):T(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):R(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||B(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):R(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return N(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return N(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return j(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return j(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function q(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(L,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function z(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(7))},function(t,e,r){"use strict";"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},function(t,e,r){"use strict";var n=r(2),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=a),o(i,a),a.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},a.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},a.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},function(t,e,r){"use strict";(function(t){var e=r(0)(r(1));!function(t,n){function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function o(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"===(0,e.default)(t)?t.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=r(208).Buffer}catch(t){}function u(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function f(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"===(0,e.default)(t)&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,r,n){if("number"==typeof t)return this._initNumber(t,r,n);if("object"===(0,e.default)(t))return this._initArray(t,r,n);"hex"===r&&(r=16),i(r===(0|r)&&r>=2&&r<=36);var o=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&o++,16===r?this._parseHex(t,o):this._parseBase(t,r,o),"-"===t[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),r,n)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(i("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=u(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=u(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,e.length-1),l=Math.max(0,f-t.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|t.words[p])*(o=0|e.words[l])+h)/67108864|0,h=67108863&a}r.words[f]=0|h,u=0|c}return 0!==u?r.words[f]=0|u:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?c[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var f=h[t],l=d[t];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(t);r=(p=p.idivn(l)).isZero()?b+r:c[f-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return i(void 0!==s),this.toArrayLike(s,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,f=new t(o),c=this.clone();if(u){for(s=0;!c.isZero();s++)a=c.andln(255),c.iushrn(8),f[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){i("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){i("number"==typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,l=0|a[1],p=8191&l,b=l>>>13,m=0|a[2],y=8191&m,v=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],A=8191&k,S=k>>>13,M=0|a[5],E=8191&M,x=M>>>13,I=0|a[6],O=8191&I,P=I>>>13,C=0|a[7],B=8191&C,T=C>>>13,R=0|a[8],U=8191&R,N=R>>>13,j=0|a[9],L=8191&j,F=j>>>13,D=0|s[0],q=8191&D,z=D>>>13,H=0|s[1],K=8191&H,V=H>>>13,G=0|s[2],W=8191&G,Y=G>>>13,$=0|s[3],J=8191&$,Z=$>>>13,X=0|s[4],Q=8191&X,tt=X>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ft=st>>>13,ct=0|s[8],ht=8191&ct,dt=ct>>>13,lt=0|s[9],pt=8191<,bt=lt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(f+(n=Math.imul(h,q))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,q)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(p,q),i=(i=Math.imul(p,z))+Math.imul(b,q)|0,o=Math.imul(b,z);var yt=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,V)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),i=(i=Math.imul(y,z))+Math.imul(v,q)|0,o=Math.imul(v,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var vt=(f+(n=n+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,W)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(w,q),i=(i=Math.imul(w,z))+Math.imul(_,q)|0,o=Math.imul(_,z),n=n+Math.imul(y,K)|0,i=(i=i+Math.imul(y,V)|0)+Math.imul(v,K)|0,o=o+Math.imul(v,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,Y)|0;var gt=(f+(n=n+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,J)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(S,q)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(y,W)|0,i=(i=i+Math.imul(y,Y)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,Y)|0,n=n+Math.imul(p,J)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,J)|0,o=o+Math.imul(b,Z)|0;var wt=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(E,q),i=(i=Math.imul(E,z))+Math.imul(x,q)|0,o=Math.imul(x,z),n=n+Math.imul(A,K)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(w,W)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Y)|0,n=n+Math.imul(y,J)|0,i=(i=i+Math.imul(y,Z)|0)+Math.imul(v,J)|0,o=o+Math.imul(v,Z)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,tt)|0;var _t=(f+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(d,rt)|0))<<13)|0;f=((o=o+Math.imul(d,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,q),i=(i=Math.imul(O,z))+Math.imul(P,q)|0,o=Math.imul(P,z),n=n+Math.imul(E,K)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,Y)|0,n=n+Math.imul(w,J)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,J)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(y,Q)|0,i=(i=i+Math.imul(y,tt)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(b,rt)|0,o=o+Math.imul(b,nt)|0;var kt=(f+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,at)|0)+Math.imul(d,ot)|0))<<13)|0;f=((o=o+Math.imul(d,at)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,q),i=(i=Math.imul(B,z))+Math.imul(T,q)|0,o=Math.imul(T,z),n=n+Math.imul(O,K)|0,i=(i=i+Math.imul(O,V)|0)+Math.imul(P,K)|0,o=o+Math.imul(P,V)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,Y)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,Z)|0)+Math.imul(S,J)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,n=n+Math.imul(y,rt)|0,i=(i=i+Math.imul(y,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,at)|0)+Math.imul(b,ot)|0,o=o+Math.imul(b,at)|0;var At=(f+(n=n+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ft)|0)+Math.imul(d,ut)|0))<<13)|0;f=((o=o+Math.imul(d,ft)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(U,q),i=(i=Math.imul(U,z))+Math.imul(N,q)|0,o=Math.imul(N,z),n=n+Math.imul(B,K)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(O,W)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,Y)|0,n=n+Math.imul(E,J)|0,i=(i=i+Math.imul(E,Z)|0)+Math.imul(x,J)|0,o=o+Math.imul(x,Z)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=(i=i+Math.imul(w,nt)|0)+Math.imul(_,rt)|0,o=o+Math.imul(_,nt)|0,n=n+Math.imul(y,ot)|0,i=(i=i+Math.imul(y,at)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,at)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(b,ut)|0,o=o+Math.imul(b,ft)|0;var St=(f+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,dt)|0)+Math.imul(d,ht)|0))<<13)|0;f=((o=o+Math.imul(d,dt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,q),i=(i=Math.imul(L,z))+Math.imul(F,q)|0,o=Math.imul(F,z),n=n+Math.imul(U,K)|0,i=(i=i+Math.imul(U,V)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,V)|0,n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(T,W)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(O,J)|0,i=(i=i+Math.imul(O,Z)|0)+Math.imul(P,J)|0,o=o+Math.imul(P,Z)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,at)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,n=n+Math.imul(y,ut)|0,i=(i=i+Math.imul(y,ft)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,ft)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,dt)|0)+Math.imul(b,ht)|0,o=o+Math.imul(b,dt)|0;var Mt=(f+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,bt)|0)+Math.imul(d,pt)|0))<<13)|0;f=((o=o+Math.imul(d,bt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(F,K)|0,o=Math.imul(F,V),n=n+Math.imul(U,W)|0,i=(i=i+Math.imul(U,Y)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,Y)|0,n=n+Math.imul(B,J)|0,i=(i=i+Math.imul(B,Z)|0)+Math.imul(T,J)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(A,ot)|0,i=(i=i+Math.imul(A,at)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ft)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ft)|0,n=n+Math.imul(y,ht)|0,i=(i=i+Math.imul(y,dt)|0)+Math.imul(v,ht)|0,o=o+Math.imul(v,dt)|0;var Et=(f+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,bt)|0)+Math.imul(b,pt)|0))<<13)|0;f=((o=o+Math.imul(b,bt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,Y))+Math.imul(F,W)|0,o=Math.imul(F,Y),n=n+Math.imul(U,J)|0,i=(i=i+Math.imul(U,Z)|0)+Math.imul(N,J)|0,o=o+Math.imul(N,Z)|0,n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,at)|0)+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(S,ut)|0,o=o+Math.imul(S,ft)|0,n=n+Math.imul(w,ht)|0,i=(i=i+Math.imul(w,dt)|0)+Math.imul(_,ht)|0,o=o+Math.imul(_,dt)|0;var xt=(f+(n=n+Math.imul(y,pt)|0)|0)+((8191&(i=(i=i+Math.imul(y,bt)|0)+Math.imul(v,pt)|0))<<13)|0;f=((o=o+Math.imul(v,bt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(L,J),i=(i=Math.imul(L,Z))+Math.imul(F,J)|0,o=Math.imul(F,Z),n=n+Math.imul(U,Q)|0,i=(i=i+Math.imul(U,tt)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(B,rt)|0,i=(i=i+Math.imul(B,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(O,ot)|0,i=(i=i+Math.imul(O,at)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,n=n+Math.imul(E,ut)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(x,ut)|0,o=o+Math.imul(x,ft)|0,n=n+Math.imul(A,ht)|0,i=(i=i+Math.imul(A,dt)|0)+Math.imul(S,ht)|0,o=o+Math.imul(S,dt)|0;var It=(f+(n=n+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,bt)|0)+Math.imul(_,pt)|0))<<13)|0;f=((o=o+Math.imul(_,bt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(U,rt)|0,i=(i=i+Math.imul(U,nt)|0)+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(O,ut)|0,i=(i=i+Math.imul(O,ft)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,ft)|0,n=n+Math.imul(E,ht)|0,i=(i=i+Math.imul(E,dt)|0)+Math.imul(x,ht)|0,o=o+Math.imul(x,dt)|0;var Ot=(f+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,bt)|0)+Math.imul(S,pt)|0))<<13)|0;f=((o=o+Math.imul(S,bt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(U,ot)|0,i=(i=i+Math.imul(U,at)|0)+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,ft)|0)+Math.imul(T,ut)|0,o=o+Math.imul(T,ft)|0,n=n+Math.imul(O,ht)|0,i=(i=i+Math.imul(O,dt)|0)+Math.imul(P,ht)|0,o=o+Math.imul(P,dt)|0;var Pt=(f+(n=n+Math.imul(E,pt)|0)|0)+((8191&(i=(i=i+Math.imul(E,bt)|0)+Math.imul(x,pt)|0))<<13)|0;f=((o=o+Math.imul(x,bt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),n=n+Math.imul(U,ut)|0,i=(i=i+Math.imul(U,ft)|0)+Math.imul(N,ut)|0,o=o+Math.imul(N,ft)|0,n=n+Math.imul(B,ht)|0,i=(i=i+Math.imul(B,dt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,dt)|0;var Ct=(f+(n=n+Math.imul(O,pt)|0)|0)+((8191&(i=(i=i+Math.imul(O,bt)|0)+Math.imul(P,pt)|0))<<13)|0;f=((o=o+Math.imul(P,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ut),i=(i=Math.imul(L,ft))+Math.imul(F,ut)|0,o=Math.imul(F,ft),n=n+Math.imul(U,ht)|0,i=(i=i+Math.imul(U,dt)|0)+Math.imul(N,ht)|0,o=o+Math.imul(N,dt)|0;var Bt=(f+(n=n+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,bt)|0)+Math.imul(T,pt)|0))<<13)|0;f=((o=o+Math.imul(T,bt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Tt=(f+(n=n+Math.imul(U,pt)|0)|0)+((8191&(i=(i=i+Math.imul(U,bt)|0)+Math.imul(N,pt)|0))<<13)|0;f=((o=o+Math.imul(N,bt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863;var Rt=(f+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,bt))+Math.imul(F,pt)|0))<<13)|0;return f=((o=Math.imul(F,bt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=yt,u[2]=vt,u[3]=gt,u[4]=wt,u[5]=_t,u[6]=kt,u[7]=At,u[8]=St,u[9]=Mt,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Ct,u[16]=Bt,u[17]=Tt,u[18]=Rt,0!==f&&(u[19]=f,r.length++),r};function b(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(p=l),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?l(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):b(this,t,e)},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,f=0;f=0&&(0!==c||f>=n);f--){var h=0|this.words[f];this.words[f]=c<<26-o|h>>>o,c=h&s}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){i("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(i("number"==typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,u=n.length-i.length;if("mod"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var f=0;f=0;h--){var d=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(i,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=d)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:n,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},a.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),f=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++f;for(var c=r.clone(),h=e.clone();!e.isZero();){for(var d=0,l=1;0==(e.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(c),o.isub(h)),n.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),n.isub(s),o.isub(u)):(r.isub(e),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},a.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var h=0,d=1;0==(r.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(n=0===e.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(t),n},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){i("number"==typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new A(t)},a.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){A.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},o(g,v),g.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},g.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new g;else if("p224"===t)e=new w;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new k}return y[t]=e,e},A.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},A.prototype._verify2=function(t,e){i(0==(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},A.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},A.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},A.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},A.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},A.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},A.prototype.isqr=function(t){return this.imul(t,t.clone())},A.prototype.sqr=function(t){return this.mul(t,t)},A.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,f).cmp(u);)c.redIAdd(u);for(var h=this.pow(c,n),d=this.pow(t,n.addn(1).iushrn(1)),l=this.pow(t,n),p=o;0!==l.cmp(s);){for(var b=l,m=0;0!==b.cmp(s);m++)b=b.redSqr();i(m=0;n--){for(var f=e.words[n],c=u-1;c>=0;c--){var h=f>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}u=26}return i},A.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},A.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new S(t)},o(S,A),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t)}).call(this,r(24)(t))},function(t,e,r){"use strict";t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,r){"use strict";var n,i=r(0)(r(1));n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"===("undefined"==typeof window?"undefined":(0,i.default)(window))&&(n=window)}t.exports=n},function(t,e,r){"use strict";function n(t,e){for(var r=0;r=0&&e<=x};v.each=v.forEach=function(t,e,r){var n,i;if(e=w(e,r),O(t))for(n=0,i=t.length;n0?0:a-1;for(i||(n=e[o?o[s]:s],s+=t);s>=0&&s=3;return e(t,w(r,i,4),n,o)}};v.reduce=v.foldl=v.inject=P(1),v.reduceRight=v.foldr=P(-1),v.find=v.detect=function(t,e,r){var n=(O(t)?v.findIndex:v.findKey)(t,e,r);if(void 0!==n&&-1!==n)return t[n]},v.filter=v.select=function(t,e,r){var n=[];return e=_(e,r),v.each(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n},v.reject=function(t,e,r){return v.filter(t,v.negate(_(e)),r)},v.every=v.all=function(t,e,r){e=_(e,r);for(var n=!O(t)&&v.keys(t),i=(n||t).length,o=0;o=0},v.invoke=k((function(t,e,r){var n,i;return v.isFunction(e)?i=e:v.isArray(e)&&(n=e.slice(0,-1),e=e[e.length-1]),v.map(t,(function(t){var o=i;if(!o){if(n&&n.length&&(t=E(t,n)),null==t)return;o=t[e]}return null==o?o:o.apply(t,r)}))})),v.pluck=function(t,e){return v.map(t,v.property(e))},v.where=function(t,e){return v.filter(t,v.matcher(e))},v.findWhere=function(t,e){return v.find(t,v.matcher(e))},v.max=function(t,e,r){var n,i,a=-1/0,s=-1/0;if(null==e||"number"==typeof e&&"object"!=(0,o.default)(t[0])&&null!=t)for(var u=0,f=(t=O(t)?t:v.values(t)).length;ua&&(a=n);else e=_(e,r),v.each(t,(function(t,r,n){((i=e(t,r,n))>s||i===-1/0&&a===-1/0)&&(a=t,s=i)}));return a},v.min=function(t,e,r){var n,i,a=1/0,s=1/0;if(null==e||"number"==typeof e&&"object"!=(0,o.default)(t[0])&&null!=t)for(var u=0,f=(t=O(t)?t:v.values(t)).length;un||void 0===r)return 1;if(r0?0:i-1;o>=0&&o0?a=o>=0?o:Math.max(o+s,a):s=o>=0?Math.min(o+1,s):o+s+1;else if(r&&o&&s)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=e(h.call(n,a,s),v.isNaN))>=0?o+a:-1;for(o=t>0?a:s-1;o>=0&&oe?(n&&(clearTimeout(n),n=null),s=f,a=t.apply(i,o),n||(i=o=null)):n||!1===r.trailing||(n=setTimeout(u,c)),a};return f.cancel=function(){clearTimeout(n),s=0,n=i=o=null},f},v.debounce=function(t,e,r){var n,i,o=function(e,r){n=null,r&&(i=t.apply(e,r))},a=k((function(a){if(n&&clearTimeout(n),r){var s=!n;n=setTimeout(o,e),s&&(i=t.apply(this,a))}else n=v.delay(o,e,this,a);return i}));return a.cancel=function(){clearTimeout(n),n=null},a},v.wrap=function(t,e){return v.partial(e,t)},v.negate=function(t){return function(){return!t.apply(this,arguments)}},v.compose=function(){var t=arguments,e=t.length-1;return function(){for(var r=e,n=t[e].apply(this,arguments);r--;)n=t[r].call(this,n);return n}},v.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},v.before=function(t,e){var r;return function(){return--t>0&&(r=e.apply(this,arguments)),t<=1&&(e=null),r}},v.once=v.partial(v.before,2),v.restArguments=k;var j=!{toString:null}.propertyIsEnumerable("toString"),L=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],F=function(t,e){var r=L.length,n=t.constructor,i=v.isFunction(n)&&n.prototype||u,o="constructor";for(M(t,o)&&!v.contains(e,o)&&e.push(o);r--;)(o=L[r])in t&&t[o]!==i[o]&&!v.contains(e,o)&&e.push(o)};v.keys=function(t){if(!v.isObject(t))return[];if(b)return b(t);var e=[];for(var r in t)M(t,r)&&e.push(r);return j&&F(t,e),e},v.allKeys=function(t){if(!v.isObject(t))return[];var e=[];for(var r in t)e.push(r);return j&&F(t,e),e},v.values=function(t){for(var e=v.keys(t),r=e.length,n=Array(r),i=0;i1&&(n=w(n,e[1])),e=v.allKeys(t)):(n=H,e=T(e,!1,!1),t=Object(t));for(var i=0,o=e.length;i1&&(r=e[1])):(e=v.map(T(e,!1,!1),String),n=function(t,r){return!v.contains(e,r)}),v.pick(t,n,r)})),v.defaults=D(v.allKeys,!0),v.create=function(t,e){var r=A(t);return e&&v.extendOwn(r,e),r},v.clone=function(t){return v.isObject(t)?v.isArray(t)?t.slice():v.extend({},t):t},v.tap=function(t,e){return e(t),t},v.isMatch=function(t,e){var r=v.keys(e),n=r.length;if(null==t)return!n;for(var i=Object(t),o=0;o":">",'"':""","'":"'","`":"`"},G=v.invert(V),W=function(t){var e=function(e){return t[e]},r="(?:"+v.keys(t).join("|")+")",n=RegExp(r),i=RegExp(r,"g");return function(t){return t=null==t?"":""+t,n.test(t)?t.replace(i,e):t}};v.escape=W(V),v.unescape=W(G),v.result=function(t,e,r){v.isArray(e)||(e=[e]);var n=e.length;if(!n)return v.isFunction(r)?r.call(t):r;for(var i=0;i/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var $=/(.)^/,J={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Z=/\\|'|\r|\n|\u2028|\u2029/g,X=function(t){return"\\"+J[t]};v.template=function(t,e,r){!e&&r&&(e=r),e=v.defaults({},e,v.templateSettings);var n,i=RegExp([(e.escape||$).source,(e.interpolate||$).source,(e.evaluate||$).source].join("|")+"|$","g"),o=0,a="__p+='";t.replace(i,(function(e,r,n,i,s){return a+=t.slice(o,s).replace(Z,X),o=s+e.length,r?a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?a+="'+\n((__t=("+n+"))==null?'':__t)+\n'":i&&(a+="';\n"+i+"\n__p+='"),e})),a+="';\n",e.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{n=new Function(e.variable||"obj","_",a)}catch(t){throw t.source=a,t}var s=function(t){return n.call(this,t,v)},u=e.variable||"obj";return s.source="function("+u+"){\n"+a+"}",s},v.chain=function(t){var e=v(t);return e._chain=!0,e};var Q=function(t,e){return t._chain?v(e).chain():e};v.mixin=function(t){return v.each(v.functions(t),(function(e){var r=v[e]=t[e];v.prototype[e]=function(){var t=[this._wrapped];return c.apply(t,arguments),Q(this,r.apply(v,t))}})),v},v.mixin(v),v.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(t){var e=s[t];v.prototype[t]=function(){var r=this._wrapped;return e.apply(r,arguments),"shift"!==t&&"splice"!==t||0!==r.length||delete r[0],Q(this,r)}})),v.each(["concat","join","slice"],(function(t){var e=s[t];v.prototype[t]=function(){return Q(this,e.apply(this._wrapped,arguments))}})),v.prototype.value=function(){return this._wrapped},v.prototype.valueOf=v.prototype.toJSON=v.prototype.value,v.prototype.toString=function(){return String(this._wrapped)},void 0===(i=function(){return v}.apply(e,[]))||(n.exports=i)}()}).call(this,r(7),r(24)(t))},function(t,e,r){"use strict";"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},function(t,e,r){"use strict";var n,i,o=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function u(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(t){i=s}}();var f,c=[],h=!1,d=-1;function l(){h&&f&&(h=!1,f.length?c=f.concat(c):d=-1,c.length&&p())}function p(){if(!h){var t=u(l);h=!0;for(var e=c.length;e;){for(f=c,c=[];++d1)for(var r=1;r=256||r%1)return!1}return!0}function c(t,e){if(e||(e={}),"number"==typeof t){o.checkSafeUint53(t,"invalid arrayify value");for(var r=[];t;)r.unshift(255&t),t=parseInt(String(t/256));return 0===r.length&&r.push(0),s(new Uint8Array(r))}if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),a(t)&&(t=t.toHexString()),l(t)){var n=t.substring(2);n.length%2&&("left"===e.hexPad?n="0x0"+n.substring(2):"right"===e.hexPad?n+="0":o.throwArgumentError("hex data is odd-length","value",t));for(var i=[],u=0;ue&&o.throwArgumentError("value out of range","value",arguments[0]);var r=new Uint8Array(e);return r.set(t,e-t.length),s(r)}function l(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/))&&(!e||t.length===2+2*e)}function p(t,e){if(e||(e={}),"number"==typeof t){o.checkSafeUint53(t,"invalid hexlify value");for(var r="";t;)r="0123456789abcdef"[15&t]+r,t=Math.floor(t/16);return r.length?(r.length%2&&(r="0"+r),"0x"+r):"0x00"}if(e.allowMissingPrefix&&"string"==typeof t&&"0x"!==t.substring(0,2)&&(t="0x"+t),a(t))return t.toHexString();if(l(t))return t.length%2&&("left"===e.hexPad?t="0x0"+t.substring(2):"right"===e.hexPad?t+="0":o.throwArgumentError("hex data is odd-length","value",t)),t.toLowerCase();if(f(t)){for(var n="0x",i=0;i>4]+"0123456789abcdef"[15&s]}return n}return o.throwArgumentError("invalid hexlify value","value",t)}function b(t){"string"!=typeof t&&(t=p(t)),l(t)||o.throwArgumentError("invalid hex string","value",t),t=t.substring(2);for(var e=0;e2*e+2&&o.throwArgumentError("value out of range","value",arguments[1]);t.length<2*e+2;)t="0x0"+t.substring(2);return t}function y(t){var e={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0};if(u(t)){var r=c(t);65!==r.length&&o.throwArgumentError("invalid signature string; must be 65 bytes","signature",t),e.r=p(r.slice(0,32)),e.s=p(r.slice(32,64)),e.v=r[64],e.v<27&&(0===e.v||1===e.v?e.v+=27:o.throwArgumentError("signature invalid v byte","signature",t)),e.recoveryParam=1-e.v%2,e.recoveryParam&&(r[32]|=128),e._vs=p(r.slice(32,64))}else{if(e.r=t.r,e.s=t.s,e.v=t.v,e.recoveryParam=t.recoveryParam,e._vs=t._vs,null!=e._vs){var n=d(c(e._vs),32);e._vs=p(n);var i=n[0]>=128?1:0;null==e.recoveryParam?e.recoveryParam=i:e.recoveryParam!==i&&o.throwArgumentError("signature recoveryParam mismatch _vs","signature",t),n[0]&=127;var a=p(n);null==e.s?e.s=a:e.s!==a&&o.throwArgumentError("signature v mismatch _vs","signature",t)}null==e.recoveryParam?null==e.v?o.throwArgumentError("signature missing v and recoveryParam","signature",t):e.recoveryParam=1-e.v%2:null==e.v?e.v=27+e.recoveryParam:e.recoveryParam!==1-e.v%2&&o.throwArgumentError("signature recoveryParam mismatch v","signature",t),null!=e.r&&l(e.r)?e.r=m(e.r,32):o.throwArgumentError("signature missing or invalid r","signature",t),null!=e.s&&l(e.s)?e.s=m(e.s,32):o.throwArgumentError("signature missing or invalid s","signature",t);var s=c(e.s);s[0]>=128&&o.throwArgumentError("signature s out of range","signature",t),e.recoveryParam&&(s[0]|=128);var f=p(s);e._vs&&(l(e._vs)||o.throwArgumentError("signature invalid _vs","signature",t),e._vs=m(e._vs,32)),null==e._vs?e._vs=f:e._vs!==f&&o.throwArgumentError("signature _vs mismatch v and s","signature",t)}return e}},function(t,e,r){"use strict";var n=r(2),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(t,e,r){if("number"==typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},a.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return i(t)},a.allocUnsafeSlow=function(t){if("number"!=typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},function(t,e,r){"use strict";(function(t){var e=r(0)(r(1));!function(t,n){function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function o(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"===(0,e.default)(t)?t.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=r(427).Buffer}catch(t){}function u(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function f(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"===(0,e.default)(t)&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,r,n){if("number"==typeof t)return this._initNumber(t,r,n);if("object"===(0,e.default)(t))return this._initArray(t,r,n);"hex"===r&&(r=16),i(r===(0|r)&&r>=2&&r<=36);var o=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&o++,16===r?this._parseHex(t,o):this._parseBase(t,r,o),"-"===t[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),r,n)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(i("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=u(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=u(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,e.length-1),l=Math.max(0,f-t.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|t.words[p])*(o=0|e.words[l])+h)/67108864|0,h=67108863&a}r.words[f]=0|h,u=0|c}return 0!==u?r.words[f]=0|u:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?c[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var f=h[t],l=d[t];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(t);r=(p=p.idivn(l)).isZero()?b+r:c[f-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return i(void 0!==s),this.toArrayLike(s,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,f=new t(o),c=this.clone();if(u){for(s=0;!c.isZero();s++)a=c.andln(255),c.iushrn(8),f[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){i("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){i("number"==typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,l=0|a[1],p=8191&l,b=l>>>13,m=0|a[2],y=8191&m,v=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],A=8191&k,S=k>>>13,M=0|a[5],E=8191&M,x=M>>>13,I=0|a[6],O=8191&I,P=I>>>13,C=0|a[7],B=8191&C,T=C>>>13,R=0|a[8],U=8191&R,N=R>>>13,j=0|a[9],L=8191&j,F=j>>>13,D=0|s[0],q=8191&D,z=D>>>13,H=0|s[1],K=8191&H,V=H>>>13,G=0|s[2],W=8191&G,Y=G>>>13,$=0|s[3],J=8191&$,Z=$>>>13,X=0|s[4],Q=8191&X,tt=X>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ft=st>>>13,ct=0|s[8],ht=8191&ct,dt=ct>>>13,lt=0|s[9],pt=8191<,bt=lt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(f+(n=Math.imul(h,q))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,q)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(p,q),i=(i=Math.imul(p,z))+Math.imul(b,q)|0,o=Math.imul(b,z);var yt=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,V)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),i=(i=Math.imul(y,z))+Math.imul(v,q)|0,o=Math.imul(v,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var vt=(f+(n=n+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,W)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(w,q),i=(i=Math.imul(w,z))+Math.imul(_,q)|0,o=Math.imul(_,z),n=n+Math.imul(y,K)|0,i=(i=i+Math.imul(y,V)|0)+Math.imul(v,K)|0,o=o+Math.imul(v,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,Y)|0;var gt=(f+(n=n+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,J)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(S,q)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(y,W)|0,i=(i=i+Math.imul(y,Y)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,Y)|0,n=n+Math.imul(p,J)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,J)|0,o=o+Math.imul(b,Z)|0;var wt=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(E,q),i=(i=Math.imul(E,z))+Math.imul(x,q)|0,o=Math.imul(x,z),n=n+Math.imul(A,K)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(w,W)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Y)|0,n=n+Math.imul(y,J)|0,i=(i=i+Math.imul(y,Z)|0)+Math.imul(v,J)|0,o=o+Math.imul(v,Z)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,tt)|0;var _t=(f+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(d,rt)|0))<<13)|0;f=((o=o+Math.imul(d,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,q),i=(i=Math.imul(O,z))+Math.imul(P,q)|0,o=Math.imul(P,z),n=n+Math.imul(E,K)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,Y)|0,n=n+Math.imul(w,J)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,J)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(y,Q)|0,i=(i=i+Math.imul(y,tt)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(b,rt)|0,o=o+Math.imul(b,nt)|0;var kt=(f+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,at)|0)+Math.imul(d,ot)|0))<<13)|0;f=((o=o+Math.imul(d,at)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,q),i=(i=Math.imul(B,z))+Math.imul(T,q)|0,o=Math.imul(T,z),n=n+Math.imul(O,K)|0,i=(i=i+Math.imul(O,V)|0)+Math.imul(P,K)|0,o=o+Math.imul(P,V)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,Y)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,Z)|0)+Math.imul(S,J)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,n=n+Math.imul(y,rt)|0,i=(i=i+Math.imul(y,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,at)|0)+Math.imul(b,ot)|0,o=o+Math.imul(b,at)|0;var At=(f+(n=n+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ft)|0)+Math.imul(d,ut)|0))<<13)|0;f=((o=o+Math.imul(d,ft)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(U,q),i=(i=Math.imul(U,z))+Math.imul(N,q)|0,o=Math.imul(N,z),n=n+Math.imul(B,K)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(O,W)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,Y)|0,n=n+Math.imul(E,J)|0,i=(i=i+Math.imul(E,Z)|0)+Math.imul(x,J)|0,o=o+Math.imul(x,Z)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=(i=i+Math.imul(w,nt)|0)+Math.imul(_,rt)|0,o=o+Math.imul(_,nt)|0,n=n+Math.imul(y,ot)|0,i=(i=i+Math.imul(y,at)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,at)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(b,ut)|0,o=o+Math.imul(b,ft)|0;var St=(f+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,dt)|0)+Math.imul(d,ht)|0))<<13)|0;f=((o=o+Math.imul(d,dt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,q),i=(i=Math.imul(L,z))+Math.imul(F,q)|0,o=Math.imul(F,z),n=n+Math.imul(U,K)|0,i=(i=i+Math.imul(U,V)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,V)|0,n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(T,W)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(O,J)|0,i=(i=i+Math.imul(O,Z)|0)+Math.imul(P,J)|0,o=o+Math.imul(P,Z)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,at)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,n=n+Math.imul(y,ut)|0,i=(i=i+Math.imul(y,ft)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,ft)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,dt)|0)+Math.imul(b,ht)|0,o=o+Math.imul(b,dt)|0;var Mt=(f+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,bt)|0)+Math.imul(d,pt)|0))<<13)|0;f=((o=o+Math.imul(d,bt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(F,K)|0,o=Math.imul(F,V),n=n+Math.imul(U,W)|0,i=(i=i+Math.imul(U,Y)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,Y)|0,n=n+Math.imul(B,J)|0,i=(i=i+Math.imul(B,Z)|0)+Math.imul(T,J)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(A,ot)|0,i=(i=i+Math.imul(A,at)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ft)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ft)|0,n=n+Math.imul(y,ht)|0,i=(i=i+Math.imul(y,dt)|0)+Math.imul(v,ht)|0,o=o+Math.imul(v,dt)|0;var Et=(f+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,bt)|0)+Math.imul(b,pt)|0))<<13)|0;f=((o=o+Math.imul(b,bt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,Y))+Math.imul(F,W)|0,o=Math.imul(F,Y),n=n+Math.imul(U,J)|0,i=(i=i+Math.imul(U,Z)|0)+Math.imul(N,J)|0,o=o+Math.imul(N,Z)|0,n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,at)|0)+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(S,ut)|0,o=o+Math.imul(S,ft)|0,n=n+Math.imul(w,ht)|0,i=(i=i+Math.imul(w,dt)|0)+Math.imul(_,ht)|0,o=o+Math.imul(_,dt)|0;var xt=(f+(n=n+Math.imul(y,pt)|0)|0)+((8191&(i=(i=i+Math.imul(y,bt)|0)+Math.imul(v,pt)|0))<<13)|0;f=((o=o+Math.imul(v,bt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(L,J),i=(i=Math.imul(L,Z))+Math.imul(F,J)|0,o=Math.imul(F,Z),n=n+Math.imul(U,Q)|0,i=(i=i+Math.imul(U,tt)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(B,rt)|0,i=(i=i+Math.imul(B,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(O,ot)|0,i=(i=i+Math.imul(O,at)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,n=n+Math.imul(E,ut)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(x,ut)|0,o=o+Math.imul(x,ft)|0,n=n+Math.imul(A,ht)|0,i=(i=i+Math.imul(A,dt)|0)+Math.imul(S,ht)|0,o=o+Math.imul(S,dt)|0;var It=(f+(n=n+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,bt)|0)+Math.imul(_,pt)|0))<<13)|0;f=((o=o+Math.imul(_,bt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(U,rt)|0,i=(i=i+Math.imul(U,nt)|0)+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(O,ut)|0,i=(i=i+Math.imul(O,ft)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,ft)|0,n=n+Math.imul(E,ht)|0,i=(i=i+Math.imul(E,dt)|0)+Math.imul(x,ht)|0,o=o+Math.imul(x,dt)|0;var Ot=(f+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,bt)|0)+Math.imul(S,pt)|0))<<13)|0;f=((o=o+Math.imul(S,bt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(U,ot)|0,i=(i=i+Math.imul(U,at)|0)+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,ft)|0)+Math.imul(T,ut)|0,o=o+Math.imul(T,ft)|0,n=n+Math.imul(O,ht)|0,i=(i=i+Math.imul(O,dt)|0)+Math.imul(P,ht)|0,o=o+Math.imul(P,dt)|0;var Pt=(f+(n=n+Math.imul(E,pt)|0)|0)+((8191&(i=(i=i+Math.imul(E,bt)|0)+Math.imul(x,pt)|0))<<13)|0;f=((o=o+Math.imul(x,bt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),n=n+Math.imul(U,ut)|0,i=(i=i+Math.imul(U,ft)|0)+Math.imul(N,ut)|0,o=o+Math.imul(N,ft)|0,n=n+Math.imul(B,ht)|0,i=(i=i+Math.imul(B,dt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,dt)|0;var Ct=(f+(n=n+Math.imul(O,pt)|0)|0)+((8191&(i=(i=i+Math.imul(O,bt)|0)+Math.imul(P,pt)|0))<<13)|0;f=((o=o+Math.imul(P,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ut),i=(i=Math.imul(L,ft))+Math.imul(F,ut)|0,o=Math.imul(F,ft),n=n+Math.imul(U,ht)|0,i=(i=i+Math.imul(U,dt)|0)+Math.imul(N,ht)|0,o=o+Math.imul(N,dt)|0;var Bt=(f+(n=n+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,bt)|0)+Math.imul(T,pt)|0))<<13)|0;f=((o=o+Math.imul(T,bt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Tt=(f+(n=n+Math.imul(U,pt)|0)|0)+((8191&(i=(i=i+Math.imul(U,bt)|0)+Math.imul(N,pt)|0))<<13)|0;f=((o=o+Math.imul(N,bt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863;var Rt=(f+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,bt))+Math.imul(F,pt)|0))<<13)|0;return f=((o=Math.imul(F,bt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=yt,u[2]=vt,u[3]=gt,u[4]=wt,u[5]=_t,u[6]=kt,u[7]=At,u[8]=St,u[9]=Mt,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Ct,u[16]=Bt,u[17]=Tt,u[18]=Rt,0!==f&&(u[19]=f,r.length++),r};function b(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(p=l),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?l(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):b(this,t,e)},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,f=0;f=0&&(0!==c||f>=n);f--){var h=0|this.words[f];this.words[f]=c<<26-o|h>>>o,c=h&s}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){i("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(i("number"==typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,u=n.length-i.length;if("mod"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var f=0;f=0;h--){var d=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(i,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=d)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:n,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},a.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),f=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++f;for(var c=r.clone(),h=e.clone();!e.isZero();){for(var d=0,l=1;0==(e.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(c),o.isub(h)),n.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),n.isub(s),o.isub(u)):(r.isub(e),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},a.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var h=0,d=1;0==(r.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(n=0===e.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(t),n},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){i("number"==typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new A(t)},a.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){A.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},o(g,v),g.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},g.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new g;else if("p224"===t)e=new w;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new k}return y[t]=e,e},A.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},A.prototype._verify2=function(t,e){i(0==(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},A.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},A.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},A.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},A.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},A.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},A.prototype.isqr=function(t){return this.imul(t,t.clone())},A.prototype.sqr=function(t){return this.mul(t,t)},A.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,f).cmp(u);)c.redIAdd(u);for(var h=this.pow(c,n),d=this.pow(t,n.addn(1).iushrn(1)),l=this.pow(t,n),p=o;0!==l.cmp(s);){for(var b=l,m=0;0!==b.cmp(s);m++)b=b.redSqr();i(m=0;n--){for(var f=e.words[n],c=u-1;c>=0;c--){var h=f>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}u=26}return i},A.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},A.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new S(t)},o(S,A),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t)}).call(this,r(24)(t))},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.Logger=e.ErrorCode=e.LogLevel=void 0;var i=n(r(6)),o=n(r(8)),a=r(253),s=!1,u=!1,f={debug:1,default:2,info:2,warning:3,error:4,off:5},c=f.default,h=null;var d,l,p=function(){try{var t=[];if(["NFD","NFC","NFKD","NFKC"].forEach((function(e){try{if("test"!=="test".normalize(e))throw new Error("bad normalize")}catch(r){t.push(e)}})),t.length)throw new Error("missing "+t.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(t){return t.message}return null}();e.LogLevel=d,function(t){t.DEBUG="DEBUG",t.INFO="INFO",t.WARNING="WARNING",t.ERROR="ERROR",t.OFF="OFF"}(d||(e.LogLevel=d={})),e.ErrorCode=l,function(t){t.UNKNOWN_ERROR="UNKNOWN_ERROR",t.NOT_IMPLEMENTED="NOT_IMPLEMENTED",t.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.TIMEOUT="TIMEOUT",t.BUFFER_OVERRUN="BUFFER_OVERRUN",t.NUMERIC_FAULT="NUMERIC_FAULT",t.MISSING_NEW="MISSING_NEW",t.INVALID_ARGUMENT="INVALID_ARGUMENT",t.MISSING_ARGUMENT="MISSING_ARGUMENT",t.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",t.CALL_EXCEPTION="CALL_EXCEPTION",t.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",t.NONCE_EXPIRED="NONCE_EXPIRED",t.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",t.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT"}(l||(e.ErrorCode=l={}));var b=function(){function t(e){(0,i.default)(this,t),Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}return(0,o.default)(t,[{key:"_log",value:function(t,e){var r=t.toLowerCase();null==f[r]&&this.throwArgumentError("invalid log level name","logLevel",t),c>f[r]||console.log.apply(console,e)}},{key:"debug",value:function(){for(var e=arguments.length,r=new Array(e),n=0;n=9007199254740991)&&this.throwError(r,t.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:e}),e%1&&this.throwError(r,t.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:e}))}},{key:"checkArgumentCount",value:function(e,r,n){n=n?": "+n:"",er&&this.throwError("too many arguments"+n,t.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:r})}},{key:"checkNew",value:function(e,r){e!==Object&&null!=e||this.throwError("missing new",t.errors.MISSING_NEW,{name:r.name})}},{key:"checkAbstract",value:function(e,r){e===r?this.throwError("cannot instantiate abstract class "+JSON.stringify(r.name)+" directly; use a sub-class",t.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:"new"}):e!==Object&&null!=e||this.throwError("missing new",t.errors.MISSING_NEW,{name:r.name})}}],[{key:"globalLogger",value:function(){return h||(h=new t(a.version)),h}},{key:"setCensorship",value:function(e,r){if(!e&&r&&this.globalLogger().throwError("cannot permanently disable censorship",t.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),s){if(!e)return;this.globalLogger().throwError("error censorship permanent",t.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}u=!!e,s=!!r}},{key:"setLogLevel",value:function(e){var r=f[e.toLowerCase()];null!=r?c=r:t.globalLogger().warn("invalid log level - "+e)}},{key:"from",value:function(e){return new t(e)}}]),t}();e.Logger=b,b.errors=l,b.levels=d},function(t,e,r){"use strict";function n(e){return t.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},n(e)}t.exports=n},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(10),o=r(203),a=r(106),s=r(215),u=r(30),f=r(5),c=function t(e,r){var o=[];return r.forEach((function(r){if("object"===(0,n.default)(r.components)){if("tuple"!==r.type.substring(0,5))throw new Error("components found but type is not tuple; report on GitHub");var a="",s=r.type.indexOf("[");s>=0&&(a=r.type.substring(s));var u=t(e,r.components);i.isArray(u)&&e?o.push("tuple("+u.join(",")+")"+a):e?o.push("("+u+")"):o.push("("+u.join(",")+")"+a)}else o.push(r.type)})),o},h=function(t){if(!a.isHexStrict(t))throw new Error("The parameter must be a valid HEX string.");var e="",r=0,n=t.length;for("0x"===t.substring(0,2)&&(r=2);r7?r+=t[n].toUpperCase():r+=t[n];return r},toHex:a.toHex,toBN:a.toBN,bytesToHex:a.bytesToHex,hexToBytes:a.hexToBytes,hexToNumberString:a.hexToNumberString,hexToNumber:a.hexToNumber,toDecimal:a.hexToNumber,numberToHex:a.numberToHex,fromDecimal:a.numberToHex,hexToUtf8:a.hexToUtf8,hexToString:a.hexToUtf8,toUtf8:a.hexToUtf8,stripHexPrefix:a.stripHexPrefix,utf8ToHex:a.utf8ToHex,stringToHex:a.utf8ToHex,fromUtf8:a.utf8ToHex,hexToAscii:h,toAscii:h,asciiToHex:d,fromAscii:d,unitMap:o.unitMap,toWei:function(t,e){if(e=l(e),!a.isBN(t)&&!i.isString(t))throw new Error("Please pass numbers as strings or BN objects to avoid precision errors.");return a.isBN(t)?o.toWei(t,e):o.toWei(t,e).toString(10)},fromWei:function(t,e){if(e=l(e),!a.isBN(t)&&!i.isString(t))throw new Error("Please pass numbers as strings or BN objects to avoid precision errors.");return a.isBN(t)?o.fromWei(t,e):o.fromWei(t,e).toString(10)},padLeft:a.leftPad,leftPad:a.leftPad,padRight:a.rightPad,rightPad:a.rightPad,toTwosComplement:a.toTwosComplement,isBloom:a.isBloom,isUserEthereumAddressInBloom:a.isUserEthereumAddressInBloom,isContractAddressInBloom:a.isContractAddressInBloom,isTopic:a.isTopic,isTopicInBloom:a.isTopicInBloom,isInBloom:a.isInBloom,compareBlockNumbers:function(t,e){if(t==e)return 0;if("genesis"!=t&&"earliest"!=t&&0!=t||"genesis"!=e&&"earliest"!=e&&0!=e){if("genesis"==t||"earliest"==t)return-1;if("genesis"==e||"earliest"==e)return 1;if("latest"==t)return"pending"==e?-1:1;if("latest"===e)return"pending"==t?1:-1;if("pending"==t)return 1;if("pending"==e)return-1;var r=new f(t),n=new f(e);return r.lt(n)?-1:r.eq(n)?0:1}return 0}}},function(t,e,r){"use strict";var n=r(129);t.exports=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&n(t,e)}},function(t,e,r){"use strict";var n=r(1),i=r(130);t.exports=function(t,e){return!e||"object"!==n(e)&&"function"!=typeof e?i(t):e}},function(t,e,r){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=n,n.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)}},function(t,e,r){"use strict";var n=e,i=r(5),o=r(21),a=r(161);n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=function(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-u:u,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},n.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n=0,i=0;t.cmpn(-n)>0||e.cmpn(-i)>0;){var o,a,s,u=t.andln(3)+n&3,f=e.andln(3)+i&3;if(3===u&&(u=-1),3===f&&(f=-1),0==(1&u))o=0;else o=3!==(s=t.andln(7)+n&7)&&5!==s||2!==f?u:-u;if(r[0].push(o),0==(1&f))a=0;else a=3!==(s=e.andln(7)+i&7)&&5!==s||2!==u?f:-f;r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r},n.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(t){return"string"==typeof t?n.toArray(t,"hex"):t},n.intFromLE=function(t){return new i(t,"hex","le")}},function(t,e,r){"use strict";var n=e,i=r(15),o=r(35),a=r(181);n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=function(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-u:u,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},n.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n=0,i=0;t.cmpn(-n)>0||e.cmpn(-i)>0;){var o,a,s,u=t.andln(3)+n&3,f=e.andln(3)+i&3;if(3===u&&(u=-1),3===f&&(f=-1),0==(1&u))o=0;else o=3!==(s=t.andln(7)+n&7)&&5!==s||2!==f?u:-u;if(r[0].push(o),0==(1&f))a=0;else a=3!==(s=e.andln(7)+i&7)&&5!==s||2!==u?f:-f;r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r},n.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},n.parseBytes=function(t){return"string"==typeof t?n.toArray(t,"hex"):t},n.intFromLE=function(t){return new i(t,"hex","le")}},function(t,e,r){"use strict";t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.checkResultErrors=function(t){var e=[];return function t(r,n){if(!Array.isArray(n))return;for(var i in n){var o=r.slice();o.push(i);try{t(o,n[i])}catch(t){e.push({path:o,error:t})}}}([],t),e},e.Reader=e.Writer=e.Coder=void 0;var i=n(r(6)),o=n(r(8)),a=r(13),s=r(33),u=r(36),f=r(16),c=r(43),h=new f.Logger(c.version);var d=function(){function t(e,r,n,o){(0,i.default)(this,t),this.name=e,this.type=r,this.localName=n,this.dynamic=o}return(0,o.default)(t,[{key:"_throwError",value:function(t,e){h.throwArgumentError(t,this.localName,e)}}]),t}();e.Coder=d;var l=function(){function t(e){(0,i.default)(this,t),(0,u.defineReadOnly)(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}return(0,o.default)(t,[{key:"_writeData",value:function(t){return this._data.push(t),this._dataLength+=t.length,t.length}},{key:"appendWriter",value:function(t){return this._writeData((0,a.concat)(t._data))}},{key:"writeBytes",value:function(t){var e=(0,a.arrayify)(t),r=e.length%this.wordSize;return r&&(e=(0,a.concat)([e,this._padding.slice(r)])),this._writeData(e)}},{key:"_getValue",value:function(t){var e=(0,a.arrayify)(s.BigNumber.from(t));return e.length>this.wordSize&&h.throwError("value out-of-bounds",f.Logger.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:e.length}),e.length%this.wordSize&&(e=(0,a.concat)([this._padding.slice(e.length%this.wordSize),e])),e}},{key:"writeValue",value:function(t){return this._writeData(this._getValue(t))}},{key:"writeUpdatableValue",value:function(){var t=this,e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,function(r){t._data[e]=t._getValue(r)}}},{key:"data",get:function(){return(0,a.hexConcat)(this._data)}},{key:"length",get:function(){return this._dataLength}}]),t}();e.Writer=l;var p=function(){function t(e,r,n,o){(0,i.default)(this,t),(0,u.defineReadOnly)(this,"_data",(0,a.arrayify)(e)),(0,u.defineReadOnly)(this,"wordSize",r||32),(0,u.defineReadOnly)(this,"_coerceFunc",n),(0,u.defineReadOnly)(this,"allowLoose",o),this._offset=0}return(0,o.default)(t,[{key:"coerce",value:function(e,r){return this._coerceFunc?this._coerceFunc(e,r):t.coerce(e,r)}},{key:"_peekBytes",value:function(t,e,r){var n=Math.ceil(e/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+e<=this._data.length?n=e:h.throwError("data out-of-bounds",f.Logger.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}},{key:"subReader",value:function(e){return new t(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}},{key:"readBytes",value:function(t,e){var r=this._peekBytes(0,t,!!e);return this._offset+=r.length,r.slice(0,t)}},{key:"readValue",value:function(){return s.BigNumber.from(this.readBytes(this.wordSize))}},{key:"data",get:function(){return(0,a.hexlify)(this._data)}},{key:"consumed",get:function(){return this._offset}}],[{key:"coerce",value:function(t,e){var r=t.match("^u?int([0-9]+)$");return r&&parseInt(r[1])<=48&&(e=e.toNumber()),e}}]),t}();e.Reader=p},function(t,e,r){"use strict";var n=r(21),i=r(3);function o(t,e){return 55296==(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function a(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function s(t){return 1===t.length?"0"+t:t}function u(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=i,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i>6|192,r[n++]=63&a|128):o(t,i)?(a=65536+((1023&a)<<10)+(1023&t.charCodeAt(++i)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(i=0;i>>0}return a},e.split32=function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,r){return t+e+r>>>0},e.sum32_4=function(t,e,r,n){return t+e+r+n>>>0},e.sum32_5=function(t,e,r,n,i){return t+e+r+n+i>>>0},e.sum64=function(t,e,r,n){var i=t[e],o=n+t[e+1]>>>0,a=(o>>0,t[e+1]=o},e.sum64_hi=function(t,e,r,n){return(e+n>>>0>>0},e.sum64_lo=function(t,e,r,n){return e+n>>>0},e.sum64_4_hi=function(t,e,r,n,i,o,a,s){var u=0,f=e;return u+=(f=f+n>>>0)>>0)>>0)>>0},e.sum64_4_lo=function(t,e,r,n,i,o,a,s){return e+n+o+s>>>0},e.sum64_5_hi=function(t,e,r,n,i,o,a,s,u,f){var c=0,h=e;return c+=(h=h+n>>>0)>>0)>>0)>>0)>>0},e.sum64_5_lo=function(t,e,r,n,i,o,a,s,u,f){return e+n+o+s+f>>>0},e.rotr64_hi=function(t,e,r){return(e<<32-r|t>>>r)>>>0},e.rotr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0},e.shr64_hi=function(t,e,r){return t>>>r},e.shr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0}},function(t,e,r){"use strict";var n=r(35),i=r(11);function o(t,e){return 55296==(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function a(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function s(t){return 1===t.length?"0"+t:t}function u(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=i,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i>6|192,r[n++]=63&a|128):o(t,i)?(a=65536+((1023&a)<<10)+(1023&t.charCodeAt(++i)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(i=0;i>>0}return a},e.split32=function(t,e){for(var r=new Array(4*t.length),n=0,i=0;n>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,r){return t+e+r>>>0},e.sum32_4=function(t,e,r,n){return t+e+r+n>>>0},e.sum32_5=function(t,e,r,n,i){return t+e+r+n+i>>>0},e.sum64=function(t,e,r,n){var i=t[e],o=n+t[e+1]>>>0,a=(o>>0,t[e+1]=o},e.sum64_hi=function(t,e,r,n){return(e+n>>>0>>0},e.sum64_lo=function(t,e,r,n){return e+n>>>0},e.sum64_4_hi=function(t,e,r,n,i,o,a,s){var u=0,f=e;return u+=(f=f+n>>>0)>>0)>>0)>>0},e.sum64_4_lo=function(t,e,r,n,i,o,a,s){return e+n+o+s>>>0},e.sum64_5_hi=function(t,e,r,n,i,o,a,s,u,f){var c=0,h=e;return c+=(h=h+n>>>0)>>0)>>0)>>0)>>0},e.sum64_5_lo=function(t,e,r,n,i,o,a,s,u,f){return e+n+o+s+f>>>0},e.rotr64_hi=function(t,e,r){return(e<<32-r|t>>>r)>>>0},e.rotr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0},e.shr64_hi=function(t,e,r){return t>>>r},e.shr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0}},function(t,e,r){"use strict";var n=r(4).Buffer,i=r(34).Transform,o=r(55).StringDecoder;function a(t){i.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(3)(a,i),a.prototype.update=function(t,e,r){"string"==typeof t&&(t=n.from(t,e));var i=this._update(t);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},a.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},a.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},a.prototype._transform=function(t,e,r){var n;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){n=t}finally{r(n)}},a.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},a.prototype._finalOrDigest=function(t){var e=this.__final()||n.alloc(0);return t&&(e=this._toString(e,t,!0)),e},a.prototype._toString=function(t,e,r){if(this._decoder||(this._decoder=new o(e),this._encoding=e),this._encoding!==e)throw new Error("can't switch encodings");var n=this._decoder.write(t);return r&&(n+=this._decoder.end()),n},t.exports=a},function(t,e,r){"use strict";var n=r(199),i=r(248);t.exports={packageInit:function(t,e){if(e=Array.prototype.slice.call(e),!t)throw new Error('You need to instantiate using the "new" keyword.');Object.defineProperty(t,"currentProvider",{get:function(){return t._provider},set:function(e){return t.setProvider(e)},enumerable:!0,configurable:!0}),e[0]&&e[0]._requestManager?t._requestManager=e[0]._requestManager:t._requestManager=new n.Manager(e[0],e[1]),t.givenProvider=n.Manager.givenProvider,t.providers=n.Manager.providers,t._provider=t._requestManager.provider,t.setProvider||(t.setProvider=function(e,r){return t._requestManager.setProvider(e,r),t._provider=t._requestManager.provider,!0}),t.setRequestManager=function(e){t._requestManager=e,t._provider=e.provider},t.BatchRequest=n.BatchManager.bind(null,t._requestManager),t.extend=i(t)},addProviders:function(t){t.givenProvider=n.Manager.givenProvider,t.providers=n.Manager.providers}}},function(t,e,r){"use strict";(function(e,n){var i=r(4).Buffer,o=e.crypto||e.msCrypto;o&&o.getRandomValues?t.exports=function(t,e){if(t>4294967295)throw new RangeError("requested too many random bytes");var r=i.allocUnsafe(t);if(t>0)if(t>65536)for(var a=0;a1?(t[r[0]]=t[r[0]]||{},t[r[0]][r[1]]=e):t[r[0]]=e},l.prototype.getCall=function(t){return a.isFunction(this.call)?this.call(t):this.call},l.prototype.extractCallback=function(t){if(a.isFunction(t[t.length-1]))return t.pop()},l.prototype.validateArgs=function(t){if(t.length!==this.params)throw s.InvalidNumberOfParams(t.length,this.params,this.name)},l.prototype.formatInput=function(t){var e=this;return this.inputFormatter?this.inputFormatter.map((function(r,n){return r?r.call(e,t[n]):t[n]})):t},l.prototype.formatOutput=function(t){var e=this;return a.isArray(t)?t.map((function(t){return e.outputFormatter&&t?e.outputFormatter(t):t})):this.outputFormatter&&t?this.outputFormatter(t):t},l.prototype.toPayload=function(t){var e=this.getCall(t),r=this.extractCallback(t),n=this.formatInput(t);this.validateArgs(n);var i={method:e,params:n,callback:r};return this.transformPayload&&(i=this.transformPayload(i)),i},l.prototype._confirmTransaction=function(t,e,r){var n=this,p=!1,b=!0,m=0,y=0,v=null,g=null,w=a.isObject(r.params[0])&&r.params[0].gas?r.params[0].gas:null,_=a.isObject(r.params[0])&&r.params[0].data&&r.params[0].from&&!r.params[0].to,k=_&&r.params[0].data.length>2,A=[new l({name:"getBlockByNumber",call:"eth_getBlockByNumber",params:2,inputFormatter:[u.inputBlockNumberFormatter,function(t){return!!t}],outputFormatter:u.outputBlockFormatter}),new l({name:"getTransactionReceipt",call:"eth_getTransactionReceipt",params:1,inputFormatter:[null],outputFormatter:u.outputTransactionReceiptFormatter}),new l({name:"getCode",call:"eth_getCode",params:2,inputFormatter:[u.inputAddressFormatter,u.inputDefaultBlockNumberFormatter]}),new l({name:"getTransactionByHash",call:"eth_getTransactionByHash",params:1,inputFormatter:[null],outputFormatter:u.outputTransactionFormatter}),new h({name:"subscribe",type:"eth",subscriptions:{newBlockHeaders:{subscriptionName:"newHeads",params:0,outputFormatter:u.outputBlockFormatter}}})],S={};a.each(A,(function(t){t.attachToObject(S),t.requestManager=n.requestManager}));var M=function(a,h,l,A,M){if(!l)return M||(M={unsubscribe:function(){clearInterval(v)}}),(a?c.resolve(a):S.getTransactionReceipt(e)).catch((function(e){M.unsubscribe(),p=!0,f._fireError({message:"Failed to check for transaction receipt:",data:e},t.eventEmitter,t.reject)})).then(function(){var e=(0,o.default)(i.default.mark((function e(r){var o,s,u;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r&&r.blockHash){e.next=2;break}throw new Error("Receipt missing or blockHash null");case 2:if(n.extraFormatters&&n.extraFormatters.receiptFormatter&&(r=n.extraFormatters.receiptFormatter(r)),!(t.eventEmitter.listeners("confirmation").length>0)){e.next=28;break}if(void 0!==a&&0===y){e.next=25;break}return e.next=7,S.getBlockByNumber("latest");case 7:if(s=e.sent,u=s?s.hash:null,!h){e.next=24;break}if(!g){e.next=17;break}return e.next=13,S.getBlockByNumber(g.number+1);case 13:(o=e.sent)&&(g=o,t.eventEmitter.emit("confirmation",y,r,u)),e.next=22;break;case 17:return e.next=19,S.getBlockByNumber(r.blockNumber);case 19:o=e.sent,g=o,t.eventEmitter.emit("confirmation",y,r,u);case 22:e.next=25;break;case 24:t.eventEmitter.emit("confirmation",y,r,u);case 25:(h&&o||!h)&&y++,b=!1,y===n.transactionConfirmationBlocks+1&&(M.unsubscribe(),t.eventEmitter.removeAllListeners());case 28:return e.abrupt("return",r);case 29:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).then(function(){var e=(0,o.default)(i.default.mark((function e(r){var o;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!_||p){e.next=19;break}if(r.contractAddress){e.next=5;break}return b&&(M.unsubscribe(),p=!0),f._fireError(s.NoContractAddressFoundError(r),t.eventEmitter,t.reject,null,r),e.abrupt("return");case 5:return e.prev=5,e.next=8,S.getCode(r.contractAddress);case 8:o=e.sent,e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:if(o){e.next=15;break}return e.abrupt("return");case 15:!0===r.status&&k||o.length>2?(t.eventEmitter.emit("receipt",r),n.extraFormatters&&n.extraFormatters.contractDeployFormatter?t.resolve(n.extraFormatters.contractDeployFormatter(r)):t.resolve(r),b&&t.eventEmitter.removeAllListeners()):f._fireError(s.ContractCodeNotStoredError(r),t.eventEmitter,t.reject,null,r),b&&M.unsubscribe(),p=!0;case 19:return e.abrupt("return",r);case 20:case"end":return e.stop()}}),e,null,[[5,11]])})));return function(t){return e.apply(this,arguments)}}()).then(function(){var e=(0,o.default)(i.default.mark((function e(o){var a,c,h,l;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(_||p){e.next=35;break}if(o.outOfGas||w&&w===o.gasUsed||!0!==o.status&&"0x1"!==o.status&&void 0!==o.status){e.next=7;break}t.eventEmitter.emit("receipt",o),t.resolve(o),b&&t.eventEmitter.removeAllListeners(),e.next=33;break;case 7:if(JSON.stringify(o,null,2),!1!==o.status&&"0x0"!==o.status){e.next=32;break}if(e.prev=9,a=null,!n.handleRevert||"eth_sendTransaction"!==n.call&&"eth_sendRawTransaction"!==n.call){e.next=24;break}return c=r.params[0],"eth_sendRawTransaction"===n.call&&(h=r.params[0],l=d.parse(h),c=u.inputTransactionFormatter({data:l.data,to:l.to,from:l.from,gas:l.gasLimit.toHexString(),gasPrice:l.gasPrice.toHexString(),value:l.value.toHexString()})),e.next=16,n.getRevertReason(c,o.blockNumber);case 16:if(!(a=e.sent)){e.next=21;break}f._fireError(s.TransactionRevertInstructionError(a.reason,a.signature,o),t.eventEmitter,t.reject,null,o),e.next=22;break;case 21:throw!1;case 22:e.next=25;break;case 24:throw!1;case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(9),f._fireError(s.TransactionRevertedWithoutReasonError(o),t.eventEmitter,t.reject,null,o);case 30:e.next=33;break;case 32:f._fireError(s.TransactionOutOfGasError(o),t.eventEmitter,t.reject,null,o);case 33:b&&M.unsubscribe(),p=!0;case 35:case"end":return e.stop()}}),e,null,[[9,27]])})));return function(t){return e.apply(this,arguments)}}()).catch((function(){m++,h?m-1>=n.transactionPollingTimeout&&(M.unsubscribe(),p=!0,f._fireError(s.TransactionError("Transaction was not mined within "+n.transactionPollingTimeout+" seconds, please make sure your transaction was properly sent. Be aware that it might still be mined!"),t.eventEmitter,t.reject)):m-1>=n.transactionBlockTimeout&&(M.unsubscribe(),p=!0,f._fireError(s.TransactionError("Transaction was not mined within "+n.transactionBlockTimeout+" blocks, please make sure your transaction was properly sent. Be aware that it might still be mined!"),t.eventEmitter,t.reject))}));M.unsubscribe(),p=!0,f._fireError({message:"Failed to subscribe to new newBlockHeaders to confirm the transaction receipts.",data:l},t.eventEmitter,t.reject)},E=function(t){var e=function(){v=setInterval(M.bind(null,t,!0),1e3)};this.requestManager.provider.on?S.subscribe("newBlockHeaders",(function(r,n,i){r||!n?e():M(t,!1,r,0,i)})):e()}.bind(this);S.getTransactionReceipt(e).then((function(e){e&&e.blockHash?(t.eventEmitter.listeners("confirmation").length>0&&E(e),M(e,!1)):p||E()})).catch((function(){p||E()}))};var p=function(t,e){return a.isNumber(t)?e.wallet[t]:a.isObject(t)&&t.address&&t.privateKey?t:e.wallet[t.toLowerCase()]};l.prototype.buildCall=function(){var t=this,e="eth_sendTransaction"===t.call||"eth_sendRawTransaction"===t.call,r="eth_call"===t.call,n=function(){var n=c(!e),i=t.toPayload(Array.prototype.slice.call(arguments)),o=function(o,a){var u;if(t.handleRevert&&r&&t.abiCoder&&(!o&&t.isRevertReasonString(a)?u=a.substring(10):o&&o.data&&(u=o.data.substring(10)),u)){var c=t.abiCoder.decodeParameter("string","0x"+u);return void f._fireError(s.RevertInstructionError(c,"Error(String)"),n.eventEmitter,n.reject,i.callback,{reason:c,signature:"Error(String)"})}try{a=t.formatOutput(a)}catch(t){o=t}if(a instanceof Error&&(o=a),o)return o.error&&(o=o.error),f._fireError(o,n.eventEmitter,n.reject,i.callback);i.callback&&i.callback(null,a),e?(n.eventEmitter.emit("transactionHash",a),t._confirmTransaction(n,a,i)):o||n.resolve(a)},u=function(e){var r=a.extend({},i,{method:"eth_sendRawTransaction",params:[e.rawTransaction]});t.requestManager.send(r,o)},h=function(t,e){var r;if(e&&e.accounts&&e.accounts.wallet&&e.accounts.wallet.length)if("eth_sendTransaction"===t.method){var i=t.params[0];if((r=p(a.isObject(i)?i.from:null,e.accounts))&&r.privateKey){var s=a.omit(i,"from");return e.defaultChain&&!s.chain&&(s.chain=e.defaultChain),e.defaultHardfork&&!s.hardfork&&(s.hardfork=e.defaultHardfork),e.defaultCommon&&!s.common&&(s.common=e.defaultCommon),void e.accounts.signTransaction(s,r.privateKey).then(u).catch((function(t){if(a.isFunction(n.eventEmitter.listeners)&&n.eventEmitter.listeners("error").length){try{n.eventEmitter.emit("error",t)}catch(t){}n.eventEmitter.removeAllListeners(),n.eventEmitter.catch((function(){}))}n.reject(t)}))}}else if("eth_sign"===t.method){var f=t.params[1];if((r=p(t.params[0],e.accounts))&&r.privateKey){var c=e.accounts.sign(f,r.privateKey);return t.callback&&t.callback(null,c.signature),void n.resolve(c.signature)}}return e.requestManager.send(t,o)};if(e&&a.isObject(i.params[0])&&void 0===i.params[0].gasPrice){var d=new l({name:"getGasPrice",call:"eth_gasPrice",params:0}).createFunction(t.requestManager);d((function(r,o){o&&(i.params[0].gasPrice=o),e&&setTimeout((function(){n.eventEmitter.emit("sending",i)}),0),h(i,t)}))}else e&&setTimeout((function(){n.eventEmitter.emit("sending",i)}),0),h(i,t);return e&&setTimeout((function(){n.eventEmitter.emit("sent",i)}),0),n.eventEmitter};return n.method=t,n.request=this.request.bind(this),n},l.prototype.getRevertReason=function(t,e){var r=this;return new Promise((function(n,i){new l({name:"call",call:"eth_call",params:2,abiCoder:r.abiCoder,handleRevert:!0}).createFunction(r.requestManager)(t,f.numberToHex(e)).then((function(){n(!1)})).catch((function(t){t.reason?n({reason:t.reason,signature:t.signature}):i(t)}))}))},l.prototype.isRevertReasonString=function(t){return a.isString(t)&&(t.length-2)/2%32==4&&"0x08c379a0"===t.substring(0,10)},l.prototype.request=function(){var t=this.toPayload(Array.prototype.slice.call(arguments));return t.format=this.formatOutput.bind(this),t},t.exports=l},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"BigNumber",{enumerable:!0,get:function(){return n.BigNumber}}),Object.defineProperty(e,"_base16To36",{enumerable:!0,get:function(){return n._base16To36}}),Object.defineProperty(e,"_base36To16",{enumerable:!0,get:function(){return n._base36To16}}),Object.defineProperty(e,"formatFixed",{enumerable:!0,get:function(){return i.formatFixed}}),Object.defineProperty(e,"FixedFormat",{enumerable:!0,get:function(){return i.FixedFormat}}),Object.defineProperty(e,"FixedNumber",{enumerable:!0,get:function(){return i.FixedNumber}}),Object.defineProperty(e,"parseFixed",{enumerable:!0,get:function(){return i.parseFixed}});var n=r(119),i=r(255)},function(t,e,r){"use strict";t.exports=i;var n=r(74).EventEmitter;function i(){n.call(this)}r(3)(i,n),i.Readable=r(40),i.Writable=r(343),i.Duplex=r(344),i.Transform=r(345),i.PassThrough=r(346),i.Stream=i,i.prototype.pipe=function(t,e){var r=this;function i(e){t.writable&&!1===t.write(e)&&r.pause&&r.pause()}function o(){r.readable&&r.resume&&r.resume()}r.on("data",i),t.on("drain",o),t._isStdio||e&&!1===e.end||(r.on("end",s),r.on("close",u));var a=!1;function s(){a||(a=!0,t.end())}function u(){a||(a=!0,"function"==typeof t.destroy&&t.destroy())}function f(t){if(c(),0===n.listenerCount(this,"error"))throw t}function c(){r.removeListener("data",i),t.removeListener("drain",o),r.removeListener("end",s),r.removeListener("close",u),r.removeListener("error",f),t.removeListener("error",f),r.removeListener("end",c),r.removeListener("close",c),t.removeListener("close",c)}return r.on("error",f),t.on("error",f),r.on("end",c),r.on("close",c),t.on("close",c),t.emit("pipe",r),t}},function(t,e,r){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=n,n.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)}},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.defineReadOnly=h,e.getStatic=function(t,e){for(var r=0;r<32;r++){if(t[e])return t[e];if(!t.prototype||"object"!==(0,a.default)(t.prototype))break;t=Object.getPrototypeOf(t.prototype).constructor}return null},e.resolveProperties=function(t){return f(this,void 0,void 0,o.default.mark((function e(){var r,n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Object.keys(t).map((function(e){var r=t[e];return Promise.resolve(r).then((function(t){return{key:e,value:t}}))})),e.next=3,Promise.all(r);case 3:return n=e.sent,e.abrupt("return",n.reduce((function(t,e){return t[e.key]=e.value,t}),{}));case 5:case"end":return e.stop()}}),e)})))},e.checkProperties=function(t,e){t&&"object"===(0,a.default)(t)||c.throwArgumentError("invalid object","object",t);Object.keys(t).forEach((function(r){e[r]||c.throwArgumentError("invalid object key - "+r,"transaction:"+r,t)}))},e.shallowCopy=function(t){var e={};for(var r in t)e[r]=t[r];return e},e.deepCopy=p,e.Description=void 0;var i=n(r(6)),o=n(r(56)),a=n(r(1)),s=r(16),u=r(263),f=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function a(t){try{u(n.next(t))}catch(t){o(t)}}function s(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}u((n=n.apply(t,e||[])).next())}))},c=new s.Logger(u.version);function h(t,e,r){Object.defineProperty(t,e,{enumerable:!0,value:r,writable:!1})}var d={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function l(t){if(function t(e){if(null==e||d[(0,a.default)(e)])return!0;if(Array.isArray(e)||"object"===(0,a.default)(e)){if(!Object.isFrozen(e))return!1;for(var r=Object.keys(e),n=0;n=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=i},function(t,e,r){"use strict";var n=r(14).Buffer;function i(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){"string"==typeof t&&(e=e||"utf8",t=n.from(t,e));for(var r=this._block,i=this._blockSize,o=t.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=i},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(109),o=r(220);function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}e.parse=w,e.resolve=function(t,e){return w(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?w(t,!1,!0).resolveObject(e):e},e.format=function(t){o.isString(t)&&(t=w(t));return t instanceof a?t.format():a.prototype.format.call(t)},e.Url=a;var s=/^([a-z0-9.+-]+:)/i,u=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),h=["'"].concat(c),d=["%","/","?",";","#"].concat(h),l=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,b=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=r(221);function w(t,e,r){if(t&&o.isObject(t)&&t instanceof a)return t;var n=new a;return n.parse(t,e,r),n}a.prototype.parse=function(t,e,r){if(!o.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+(0,n.default)(t));var a=t.indexOf("?"),u=-1!==a&&a127?R+="x":R+=T[U];if(!R.match(p)){var j=C.slice(0,I),L=C.slice(I+1),F=T.match(b);F&&(j.push(F[1]),L.unshift(F[2])),L.length&&(w="/"+L.join(".")+w),this.hostname=j.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),P||(this.hostname=i.toASCII(this.hostname));var D=this.port?":"+this.port:"",q=this.hostname||"";this.host=q+D,this.href+=this.host,P&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==w[0]&&(w="/"+w))}if(!m[A])for(I=0,B=h.length;I0)&&r.host.split("@"))&&(r.auth=O.shift(),r.host=r.hostname=O.shift());return r.search=t.search,r.query=t.query,o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!A.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var M=A.slice(-1)[0],E=(r.host||t.host||A.length>1)&&("."===M||".."===M)||""===M,x=0,I=A.length;I>=0;I--)"."===(M=A[I])?A.splice(I,1):".."===M?(A.splice(I,1),x++):x&&(A.splice(I,1),x--);if(!_&&!k)for(;x--;x)A.unshift("..");!_||""===A[0]||A[0]&&"/"===A[0].charAt(0)||A.unshift(""),E&&"/"!==A.join("/").substr(-1)&&A.push("");var O,P=""===A[0]||A[0]&&"/"===A[0].charAt(0);S&&(r.hostname=r.host=P?"":A.length?A.shift():"",(O=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=O.shift(),r.host=r.hostname=O.shift()));return(_=_||r.host&&A.length)&&!P&&A.unshift(""),A.length?r.pathname=A.join("/"):(r.pathname=null,r.path=null),o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var t=this.host,e=u.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)}},function(t,e,r){"use strict";(e=t.exports=r(112)).Stream=e,e.Readable=e,e.Writable=r(75),e.Duplex=r(31),e.Transform=r(116),e.PassThrough=r(238)},function(t,e,r){"use strict";(function(t){var n=r(0)(r(1));function i(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):"[object Array]"===i(t)},e.isBoolean=function(t){return"boolean"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return"number"==typeof t},e.isString=function(t){return"string"==typeof t},e.isSymbol=function(t){return"symbol"===(0,n.default)(t)},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return"[object RegExp]"===i(t)},e.isObject=function(t){return"object"===(0,n.default)(t)&&null!==t},e.isDate=function(t){return"[object Date]"===i(t)},e.isError=function(t){return"[object Error]"===i(t)||t instanceof Error},e.isFunction=function(t){return"function"==typeof t},e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"===(0,n.default)(t)||void 0===t},e.isBuffer=t.isBuffer}).call(this,r(2).Buffer)},function(t,e,r){"use strict";var n=r(26),i=r(21);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=o,o.prototype.update=function(t,e){if(t=n.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=n.join32(t,0,t.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o=this._delta8){var r=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=n.join32(t,0,t.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o=0}))},intToBuffer:function(t){var r=s(t);return new e(a(r.slice(2)),"hex")},getBinarySize:function(t){if("string"!=typeof t)throw new Error("[ethjs-util] while getting binary size, method getBinarySize requires input 'str' to be type String, got '"+(0,n.default)(t)+"'.");return e.byteLength(t,"utf8")},isHexPrefixed:i,stripHexPrefix:o,padToEven:a,intToHex:s,fromAscii:function(t){for(var e="",r=0;r0&&"0"===e.toString();)e=(t=t.slice(1))[0];return t},e.stripZeros=e.unpad,e.toBuffer=function(e){if(!t.isBuffer(e))if(Array.isArray(e))e=t.from(e);else if("string"==typeof e){if(!n.isHexString(e))throw new Error("Cannot convert string to buffer. toBuffer only supports 0x-prefixed hex strings and this string was given: "+e);e=t.from(n.padToEven(n.stripHexPrefix(e)),"hex")}else if("number"==typeof e)e=n.intToBuffer(e);else if(null==e)e=t.allocUnsafe(0);else if(i.isBN(e))e=e.toArrayLike(t);else{if(!e.toArray)throw new Error("invalid type");e=t.from(e.toArray())}return e},e.bufferToInt=function(t){return new i(e.toBuffer(t)).toNumber()},e.bufferToHex=function(t){return"0x"+(t=e.toBuffer(t)).toString("hex")},e.fromSigned=function(t){return new i(t).fromTwos(256)},e.toUnsigned=function(e){return t.from(e.toTwos(256).toArray())},e.addHexPrefix=function(t){return"string"!=typeof t||n.isHexPrefixed(t)?t:"0x"+t},e.baToJSON=function(r){if(t.isBuffer(r))return"0x"+r.toString("hex");if(r instanceof Array){for(var n=[],i=0;i>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function s(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"�"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function f(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function c(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function h(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function d(t){return t.toString(this.encoding)}function l(t){return t&&t.length?this.write(t):""}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(t.lastNeed=i-1),i;if(--n=0)return i>0&&(t.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,r){"use strict";t.exports=r(249)},function(t,e,r){"use strict";var n=r(72),i=function(t){var e,r,i=new Promise((function(){e=arguments[0],r=arguments[1]}));if(t)return{resolve:e,reject:r,eventEmitter:i};var o=new n;return i._events=o._events,i.emit=o.emit,i.on=o.on,i.once=o.once,i.off=o.off,i.listeners=o.listeners,i.addListener=o.addListener,i.removeListener=o.removeListener,i.removeAllListeners=o.removeAllListeners,{resolve:e,reject:r,eventEmitter:i}};i.resolve=function(t){var e=i(!0);return e.resolve(t),e.eventEmitter},t.exports=i},function(t,e,r){"use strict";var n=r(250),i=function(t){this.name=t.name,this.type=t.type,this.subscriptions=t.subscriptions||{},this.requestManager=null};i.prototype.setRequestManager=function(t){this.requestManager=t},i.prototype.attachToObject=function(t){var e=this.buildCall(),r=this.name.split(".");r.length>1?(t[r[0]]=t[r[0]]||{},t[r[0]][r[1]]=e):t[r[0]]=e},i.prototype.buildCall=function(){var t=this;return function(){t.subscriptions[arguments[0]]||console.warn("Subscription "+JSON.stringify(arguments[0])+" doesn't exist. Subscribing anyway.");var e=new n({subscription:t.subscriptions[arguments[0]]||{},requestManager:t.requestManager,type:t.type});return e.subscribe.apply(e,arguments)}},t.exports={subscriptions:i,subscription:n}},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.keccak256=function(t){return"0x"+i.default.keccak_256((0,o.arrayify)(t))};var i=n(r(256)),o=r(13)},function(t,e,r){"use strict";var n=e;n.utils=r(26),n.common=r(42),n.sha=r(266),n.ripemd=r(270),n.hmac=r(271),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},function(t,e,r){"use strict";var n=r(29),i=r(32),o=r(18),a=function(){var t=this;n.packageInit(this,arguments),[new i({name:"getId",call:"net_version",params:0,outputFormatter:parseInt}),new i({name:"isListening",call:"net_listening",params:0}),new i({name:"getPeerCount",call:"net_peerCount",params:0,outputFormatter:o.hexToNumber})].forEach((function(e){e.attachToObject(t),e.setRequestManager(t._requestManager)}))};n.addProviders(a),t.exports=a},function(t){t.exports=JSON.parse('{"identity":0,"ip4":4,"tcp":6,"sha1":17,"sha2-256":18,"sha2-512":19,"sha3-512":20,"sha3-384":21,"sha3-256":22,"sha3-224":23,"shake-128":24,"shake-256":25,"keccak-224":26,"keccak-256":27,"keccak-384":28,"keccak-512":29,"dccp":33,"murmur3-128":34,"murmur3-32":35,"ip6":41,"ip6zone":42,"path":47,"multicodec":48,"multihash":49,"multiaddr":50,"multibase":51,"dns":53,"dns4":54,"dns6":55,"dnsaddr":56,"protobuf":80,"cbor":81,"raw":85,"dbl-sha2-256":86,"rlp":96,"bencode":99,"dag-pb":112,"dag-cbor":113,"libp2p-key":114,"git-raw":120,"torrent-info":123,"torrent-file":124,"leofcoin-block":129,"leofcoin-tx":130,"leofcoin-pr":131,"sctp":132,"eth-block":144,"eth-block-list":145,"eth-tx-trie":146,"eth-tx":147,"eth-tx-receipt-trie":148,"eth-tx-receipt":149,"eth-state-trie":150,"eth-account-snapshot":151,"eth-storage-trie":152,"bitcoin-block":176,"bitcoin-tx":177,"zcash-block":192,"zcash-tx":193,"stellar-block":208,"stellar-tx":209,"md4":212,"md5":213,"bmt":214,"decred-block":224,"decred-tx":225,"ipld-ns":226,"ipfs-ns":227,"swarm-ns":228,"ipns-ns":229,"zeronet":230,"ed25519-pub":237,"dash-block":240,"dash-tx":241,"swarm-manifest":250,"swarm-feed":251,"udp":273,"p2p-webrtc-star":275,"p2p-webrtc-direct":276,"p2p-stardust":277,"p2p-circuit":290,"dag-json":297,"udt":301,"utp":302,"unix":400,"p2p":421,"ipfs":421,"https":443,"onion":444,"onion3":445,"garlic64":446,"garlic32":447,"tls":448,"quic":460,"ws":477,"wss":478,"p2p-websocket-star":479,"http":480,"json":512,"messagepack":513,"x11":4352,"blake2b-8":45569,"blake2b-16":45570,"blake2b-24":45571,"blake2b-32":45572,"blake2b-40":45573,"blake2b-48":45574,"blake2b-56":45575,"blake2b-64":45576,"blake2b-72":45577,"blake2b-80":45578,"blake2b-88":45579,"blake2b-96":45580,"blake2b-104":45581,"blake2b-112":45582,"blake2b-120":45583,"blake2b-128":45584,"blake2b-136":45585,"blake2b-144":45586,"blake2b-152":45587,"blake2b-160":45588,"blake2b-168":45589,"blake2b-176":45590,"blake2b-184":45591,"blake2b-192":45592,"blake2b-200":45593,"blake2b-208":45594,"blake2b-216":45595,"blake2b-224":45596,"blake2b-232":45597,"blake2b-240":45598,"blake2b-248":45599,"blake2b-256":45600,"blake2b-264":45601,"blake2b-272":45602,"blake2b-280":45603,"blake2b-288":45604,"blake2b-296":45605,"blake2b-304":45606,"blake2b-312":45607,"blake2b-320":45608,"blake2b-328":45609,"blake2b-336":45610,"blake2b-344":45611,"blake2b-352":45612,"blake2b-360":45613,"blake2b-368":45614,"blake2b-376":45615,"blake2b-384":45616,"blake2b-392":45617,"blake2b-400":45618,"blake2b-408":45619,"blake2b-416":45620,"blake2b-424":45621,"blake2b-432":45622,"blake2b-440":45623,"blake2b-448":45624,"blake2b-456":45625,"blake2b-464":45626,"blake2b-472":45627,"blake2b-480":45628,"blake2b-488":45629,"blake2b-496":45630,"blake2b-504":45631,"blake2b-512":45632,"blake2s-8":45633,"blake2s-16":45634,"blake2s-24":45635,"blake2s-32":45636,"blake2s-40":45637,"blake2s-48":45638,"blake2s-56":45639,"blake2s-64":45640,"blake2s-72":45641,"blake2s-80":45642,"blake2s-88":45643,"blake2s-96":45644,"blake2s-104":45645,"blake2s-112":45646,"blake2s-120":45647,"blake2s-128":45648,"blake2s-136":45649,"blake2s-144":45650,"blake2s-152":45651,"blake2s-160":45652,"blake2s-168":45653,"blake2s-176":45654,"blake2s-184":45655,"blake2s-192":45656,"blake2s-200":45657,"blake2s-208":45658,"blake2s-216":45659,"blake2s-224":45660,"blake2s-232":45661,"blake2s-240":45662,"blake2s-248":45663,"blake2s-256":45664,"skein256-8":45825,"skein256-16":45826,"skein256-24":45827,"skein256-32":45828,"skein256-40":45829,"skein256-48":45830,"skein256-56":45831,"skein256-64":45832,"skein256-72":45833,"skein256-80":45834,"skein256-88":45835,"skein256-96":45836,"skein256-104":45837,"skein256-112":45838,"skein256-120":45839,"skein256-128":45840,"skein256-136":45841,"skein256-144":45842,"skein256-152":45843,"skein256-160":45844,"skein256-168":45845,"skein256-176":45846,"skein256-184":45847,"skein256-192":45848,"skein256-200":45849,"skein256-208":45850,"skein256-216":45851,"skein256-224":45852,"skein256-232":45853,"skein256-240":45854,"skein256-248":45855,"skein256-256":45856,"skein512-8":45857,"skein512-16":45858,"skein512-24":45859,"skein512-32":45860,"skein512-40":45861,"skein512-48":45862,"skein512-56":45863,"skein512-64":45864,"skein512-72":45865,"skein512-80":45866,"skein512-88":45867,"skein512-96":45868,"skein512-104":45869,"skein512-112":45870,"skein512-120":45871,"skein512-128":45872,"skein512-136":45873,"skein512-144":45874,"skein512-152":45875,"skein512-160":45876,"skein512-168":45877,"skein512-176":45878,"skein512-184":45879,"skein512-192":45880,"skein512-200":45881,"skein512-208":45882,"skein512-216":45883,"skein512-224":45884,"skein512-232":45885,"skein512-240":45886,"skein512-248":45887,"skein512-256":45888,"skein512-264":45889,"skein512-272":45890,"skein512-280":45891,"skein512-288":45892,"skein512-296":45893,"skein512-304":45894,"skein512-312":45895,"skein512-320":45896,"skein512-328":45897,"skein512-336":45898,"skein512-344":45899,"skein512-352":45900,"skein512-360":45901,"skein512-368":45902,"skein512-376":45903,"skein512-384":45904,"skein512-392":45905,"skein512-400":45906,"skein512-408":45907,"skein512-416":45908,"skein512-424":45909,"skein512-432":45910,"skein512-440":45911,"skein512-448":45912,"skein512-456":45913,"skein512-464":45914,"skein512-472":45915,"skein512-480":45916,"skein512-488":45917,"skein512-496":45918,"skein512-504":45919,"skein512-512":45920,"skein1024-8":45921,"skein1024-16":45922,"skein1024-24":45923,"skein1024-32":45924,"skein1024-40":45925,"skein1024-48":45926,"skein1024-56":45927,"skein1024-64":45928,"skein1024-72":45929,"skein1024-80":45930,"skein1024-88":45931,"skein1024-96":45932,"skein1024-104":45933,"skein1024-112":45934,"skein1024-120":45935,"skein1024-128":45936,"skein1024-136":45937,"skein1024-144":45938,"skein1024-152":45939,"skein1024-160":45940,"skein1024-168":45941,"skein1024-176":45942,"skein1024-184":45943,"skein1024-192":45944,"skein1024-200":45945,"skein1024-208":45946,"skein1024-216":45947,"skein1024-224":45948,"skein1024-232":45949,"skein1024-240":45950,"skein1024-248":45951,"skein1024-256":45952,"skein1024-264":45953,"skein1024-272":45954,"skein1024-280":45955,"skein1024-288":45956,"skein1024-296":45957,"skein1024-304":45958,"skein1024-312":45959,"skein1024-320":45960,"skein1024-328":45961,"skein1024-336":45962,"skein1024-344":45963,"skein1024-352":45964,"skein1024-360":45965,"skein1024-368":45966,"skein1024-376":45967,"skein1024-384":45968,"skein1024-392":45969,"skein1024-400":45970,"skein1024-408":45971,"skein1024-416":45972,"skein1024-424":45973,"skein1024-432":45974,"skein1024-440":45975,"skein1024-448":45976,"skein1024-456":45977,"skein1024-464":45978,"skein1024-472":45979,"skein1024-480":45980,"skein1024-488":45981,"skein1024-496":45982,"skein1024-504":45983,"skein1024-512":45984,"skein1024-520":45985,"skein1024-528":45986,"skein1024-536":45987,"skein1024-544":45988,"skein1024-552":45989,"skein1024-560":45990,"skein1024-568":45991,"skein1024-576":45992,"skein1024-584":45993,"skein1024-592":45994,"skein1024-600":45995,"skein1024-608":45996,"skein1024-616":45997,"skein1024-624":45998,"skein1024-632":45999,"skein1024-640":46000,"skein1024-648":46001,"skein1024-656":46002,"skein1024-664":46003,"skein1024-672":46004,"skein1024-680":46005,"skein1024-688":46006,"skein1024-696":46007,"skein1024-704":46008,"skein1024-712":46009,"skein1024-720":46010,"skein1024-728":46011,"skein1024-736":46012,"skein1024-744":46013,"skein1024-752":46014,"skein1024-760":46015,"skein1024-768":46016,"skein1024-776":46017,"skein1024-784":46018,"skein1024-792":46019,"skein1024-800":46020,"skein1024-808":46021,"skein1024-816":46022,"skein1024-824":46023,"skein1024-832":46024,"skein1024-840":46025,"skein1024-848":46026,"skein1024-856":46027,"skein1024-864":46028,"skein1024-872":46029,"skein1024-880":46030,"skein1024-888":46031,"skein1024-896":46032,"skein1024-904":46033,"skein1024-912":46034,"skein1024-920":46035,"skein1024-928":46036,"skein1024-936":46037,"skein1024-944":46038,"skein1024-952":46039,"skein1024-960":46040,"skein1024-968":46041,"skein1024-976":46042,"skein1024-984":46043,"skein1024-992":46044,"skein1024-1000":46045,"skein1024-1008":46046,"skein1024-1016":46047,"skein1024-1024":46048,"holochain-adr-v0":8417572,"holochain-adr-v1":8483108,"holochain-key-v0":9728292,"holochain-key-v1":9793828,"holochain-sig-v0":10645796,"holochain-sig-v1":10711332}')},function(t,e,r){"use strict";e.randomBytes=e.rng=e.pseudoRandomBytes=e.prng=r(30),e.createHash=e.Hash=r(47),e.createHmac=e.Hmac=r(147);var n=r(352),i=Object.keys(n),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);e.getHashes=function(){return o};var a=r(150);e.pbkdf2=a.pbkdf2,e.pbkdf2Sync=a.pbkdf2Sync;var s=r(354);e.Cipher=s.Cipher,e.createCipher=s.createCipher,e.Cipheriv=s.Cipheriv,e.createCipheriv=s.createCipheriv,e.Decipher=s.Decipher,e.createDecipher=s.createDecipher,e.Decipheriv=s.Decipheriv,e.createDecipheriv=s.createDecipheriv,e.getCiphers=s.getCiphers,e.listCiphers=s.listCiphers;var u=r(371);e.DiffieHellmanGroup=u.DiffieHellmanGroup,e.createDiffieHellmanGroup=u.createDiffieHellmanGroup,e.getDiffieHellman=u.getDiffieHellman,e.createDiffieHellman=u.createDiffieHellman,e.DiffieHellman=u.DiffieHellman;var f=r(375);e.createSign=f.createSign,e.Sign=f.Sign,e.createVerify=f.createVerify,e.Verify=f.Verify,e.createECDH=r(403);var c=r(404);e.publicEncrypt=c.publicEncrypt,e.privateEncrypt=c.privateEncrypt,e.publicDecrypt=c.publicDecrypt,e.privateDecrypt=c.privateDecrypt;var h=r(407);e.randomFill=h.randomFill,e.randomFillSync=h.randomFillSync,e.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},e.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(t,e,r){"use strict";var n=r(4).Buffer;function i(t){n.isBuffer(t)||(t=n.from(t));for(var e=t.length/4|0,r=new Array(e),i=0;i>>24]^c[p>>>16&255]^h[b>>>8&255]^d[255&m]^e[y++],a=f[p>>>24]^c[b>>>16&255]^h[m>>>8&255]^d[255&l]^e[y++],s=f[b>>>24]^c[m>>>16&255]^h[l>>>8&255]^d[255&p]^e[y++],u=f[m>>>24]^c[l>>>16&255]^h[p>>>8&255]^d[255&b]^e[y++],l=o,p=a,b=s,m=u;return o=(n[l>>>24]<<24|n[p>>>16&255]<<16|n[b>>>8&255]<<8|n[255&m])^e[y++],a=(n[p>>>24]<<24|n[b>>>16&255]<<16|n[m>>>8&255]<<8|n[255&l])^e[y++],s=(n[b>>>24]<<24|n[m>>>16&255]<<16|n[l>>>8&255]<<8|n[255&p])^e[y++],u=(n[m>>>24]<<24|n[l>>>16&255]<<16|n[p>>>8&255]<<8|n[255&b])^e[y++],[o>>>=0,a>>>=0,s>>>=0,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var f=s^s<<1^s<<2^s<<3^s<<4;f=f>>>8^255&f^99,r[a]=f,n[f]=a;var c=t[a],h=t[c],d=t[h],l=257*t[f]^16843008*f;i[0][a]=l<<24|l>>>8,i[1][a]=l<<16|l>>>16,i[2][a]=l<<8|l>>>24,i[3][a]=l,l=16843009*d^65537*h^257*c^16843008*a,o[0][f]=l<<24|l>>>8,o[1][f]=l<<16|l>>>16,o[2][f]=l<<8|l>>>24,o[3][f]=l,0===a?a=s=1:(a=c^t[t[t[d^c]]],s^=t[t[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function f(t){this._key=i(t),this._reset()}f.blockSize=16,f.keySize=32,f.prototype.blockSize=f.blockSize,f.prototype.keySize=f.keySize,f.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e==4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),i[o]=i[o-e]^a}for(var f=[],c=0;c>>24]]^u.INV_SUB_MIX[1][u.SBOX[d>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[d>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&d]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=f},f.prototype.encryptBlockRaw=function(t){return a(t=i(t),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},f.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=n.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},f.prototype.decryptBlock=function(t){var e=(t=i(t))[1];t[1]=t[3],t[3]=e;var r=a(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},f.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},t.exports.AES=f},function(t,e,r){"use strict";var n=r(4).Buffer,i=r(84);t.exports=function(t,e,r,o){if(n.isBuffer(t)||(t=n.from(t,"binary")),e&&(n.isBuffer(e)||(e=n.from(e,"binary")),8!==e.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var a=r/8,s=n.alloc(a),u=n.alloc(o||0),f=n.alloc(0);a>0||o>0;){var c=new i;c.update(f),c.update(t),e&&c.update(e),f=c.digest();var h=0;if(a>0){var d=s.length-a;h=Math.min(a,f.length),f.copy(s,d,0,h),a-=h}if(h0){var l=u.length-o,p=Math.min(o,f.length-h);f.copy(u,l,h,h+p),o-=p}}return f.fill(0),{key:s,iv:u}}},function(t,e,r){"use strict";var n=e;n.version=r(377).version,n.utils=r(22),n.rand=r(90),n.curve=r(162),n.curves=r(92),n.ec=r(382),n.eddsa=r(386)},function(t,e,r){"use strict";var n=r(5),i=r(22),o=i.getNAF,a=i.getJSF,s=i.assert;function u(t,e){this.type=t,this.p=new n(e.p,16),this.red=e.prime?n.red(e.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=e.n&&new n(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function f(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(t,e){s(t.precomputed);var r=t._getDoubles(),n=o(e,1,this._bitLength),i=(1<=u;e--)f=(f<<1)+n[e];a.push(f)}for(var c=this.jpoint(null,null,null),h=this.jpoint(null,null,null),d=i;d>0;d--){for(u=0;u=0;f--){for(e=0;f>=0&&0===a[f];f--)e++;if(f>=0&&e++,u=u.dblp(e),f<0)break;var c=a[f];s(0!==c),u="affine"===t.type?c>0?u.mixedAdd(i[c-1>>1]):u.mixedAdd(i[-c-1>>1].neg()):c>0?u.add(i[c-1>>1]):u.add(i[-c-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,r,n,i){for(var s=this._wnafT1,u=this._wnafT2,f=this._wnafT3,c=0,h=0;h=1;h-=2){var l=h-1,p=h;if(1===s[l]&&1===s[p]){var b=[e[l],null,null,e[p]];0===e[l].y.cmp(e[p].y)?(b[1]=e[l].add(e[p]),b[2]=e[l].toJ().mixedAdd(e[p].neg())):0===e[l].y.cmp(e[p].y.redNeg())?(b[1]=e[l].toJ().mixedAdd(e[p]),b[2]=e[l].add(e[p].neg())):(b[1]=e[l].toJ().mixedAdd(e[p]),b[2]=e[l].toJ().mixedAdd(e[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],y=a(r[l],r[p]);c=Math.max(y[0].length,c),f[l]=new Array(c),f[p]=new Array(c);for(var v=0;v=0;h--){for(var A=0;h>=0;){var S=!0;for(v=0;v=0&&A++,_=_.dblp(A),h<0)break;for(v=0;v0?M=u[v][E-1>>1]:E<0&&(M=u[v][-E-1>>1].neg()),_="affine"===M.type?_.mixedAdd(M):_.add(M))}}for(h=0;h=Math.ceil((t.bitLength()+1)/e.step)},f.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function f(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(t,e){s(t.precomputed);var r=t._getDoubles(),n=o(e,1,this._bitLength),i=(1<=u;e--)f=(f<<1)+n[e];a.push(f)}for(var c=this.jpoint(null,null,null),h=this.jpoint(null,null,null),d=i;d>0;d--){for(u=0;u=0;f--){for(e=0;f>=0&&0===a[f];f--)e++;if(f>=0&&e++,u=u.dblp(e),f<0)break;var c=a[f];s(0!==c),u="affine"===t.type?c>0?u.mixedAdd(i[c-1>>1]):u.mixedAdd(i[-c-1>>1].neg()):c>0?u.add(i[c-1>>1]):u.add(i[-c-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,r,n,i){for(var s=this._wnafT1,u=this._wnafT2,f=this._wnafT3,c=0,h=0;h=1;h-=2){var l=h-1,p=h;if(1===s[l]&&1===s[p]){var b=[e[l],null,null,e[p]];0===e[l].y.cmp(e[p].y)?(b[1]=e[l].add(e[p]),b[2]=e[l].toJ().mixedAdd(e[p].neg())):0===e[l].y.cmp(e[p].y.redNeg())?(b[1]=e[l].toJ().mixedAdd(e[p]),b[2]=e[l].add(e[p].neg())):(b[1]=e[l].toJ().mixedAdd(e[p]),b[2]=e[l].toJ().mixedAdd(e[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],y=a(r[l],r[p]);c=Math.max(y[0].length,c),f[l]=new Array(c),f[p]=new Array(c);for(var v=0;v=0;h--){for(var A=0;h>=0;){var S=!0;for(v=0;v=0&&A++,_=_.dblp(A),h<0)break;for(v=0;v0?M=u[v][E-1>>1]:E<0&&(M=u[v][-E-1>>1].neg()),_="affine"===M.type?_.mixedAdd(M):_.add(M))}}for(h=0;h=Math.ceil((t.bitLength()+1)/e.step)},f.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i>>31),r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(u<<1|s>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(f<<1|c>>>31),r=o^(c<<1|f>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=s^(h<<1|d>>>31),r=u^(d<<1|h>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=f^(l<<1|p>>>31),r=c^(p<<1|l>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,b=t[0],m=t[1],W=t[11]<<4|t[10]>>>28,Y=t[10]<<4|t[11]>>>28,O=t[20]<<3|t[21]>>>29,P=t[21]<<3|t[20]>>>29,st=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,U=t[2]<<1|t[3]>>>31,N=t[3]<<1|t[2]>>>31,y=t[13]<<12|t[12]>>>20,v=t[12]<<12|t[13]>>>20,$=t[22]<<10|t[23]>>>22,J=t[23]<<10|t[22]>>>22,C=t[33]<<13|t[32]>>>19,B=t[32]<<13|t[33]>>>19,ft=t[42]<<2|t[43]>>>30,ct=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,j=t[14]<<6|t[15]>>>26,L=t[15]<<6|t[14]>>>26,g=t[25]<<11|t[24]>>>21,w=t[24]<<11|t[25]>>>21,Z=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,T=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,M=t[6]<<28|t[7]>>>4,E=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,F=t[26]<<25|t[27]>>>7,D=t[27]<<25|t[26]>>>7,_=t[36]<<21|t[37]>>>11,k=t[37]<<21|t[36]>>>11,Q=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,V=t[8]<<27|t[9]>>>5,G=t[9]<<27|t[8]>>>5,x=t[18]<<20|t[19]>>>12,I=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,at=t[28]<<7|t[29]>>>25,q=t[38]<<8|t[39]>>>24,z=t[39]<<8|t[38]>>>24,A=t[48]<<14|t[49]>>>18,S=t[49]<<14|t[48]>>>18,t[0]=b^~y&g,t[1]=m^~v&w,t[10]=M^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&$,t[31]=G^~Y&J,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=y^~g&_,t[3]=v^~w&k,t[12]=x^~O&C,t[13]=I^~P&B,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~$&Z,t[33]=Y^~J&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&S,t[14]=O^~C&T,t[15]=P^~B&R,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=$^~Z&Q,t[35]=J^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&b,t[7]=k^~S&m,t[16]=C^~T&M,t[17]=B^~R&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=Z^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~b&y,t[9]=S^~m&v,t[18]=T^~M&x,t[19]=R^~E&I,t[28]=H^~U&j,t[29]=K^~N&L,t[38]=Q^~V&W,t[39]=tt^~G&Y,t[48]=ft^~et&nt,t[49]=ct^~rt&it,t[0]^=a[n],t[1]^=a[n+1]},u=function(t){return function(e){var r;if("0x"===e.slice(0,2)){r=[];for(var a=2,u=e.length;a>2]|=e[l]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|63&r)<=57344?(u[m>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<=f){for(t.start=m-f,t.block=u[c],m=0;m>2]|=i[3&m],t.lastByteIndex===f)for(u[0]=u[c],m=1;m>4&15]+n[15&p]+n[p>>12&15]+n[p>>8&15]+n[p>>20&15]+n[p>>16&15]+n[p>>28&15]+n[p>>24&15];y%c==0&&(s(d),m=0)}return"0x"+b}(function(t){return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(t<<1)>>5,outputBlocks:t>>5,s:(e=[0,0,0,0,0,0,0,0,0,0],[].concat(e,e,e,e,e))};var e}(t),r)}};t.exports={keccak256:u(256),keccak512:u(512),keccak256s:u(256),keccak512s:u(512)}},function(t,e){(function(e){t.exports=e}).call(this,{})},function(t,e,r){"use strict";var n=Object.prototype.hasOwnProperty,i="~";function o(){}function a(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function s(t,e,r,n,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var s=new a(r,n||t,o),u=i?i+e:e;return t._events[u]?t._events[u].fn?t._events[u]=[t._events[u],s]:t._events[u].push(s):(t._events[u]=s,t._eventsCount++),t}function u(t,e){0==--t._eventsCount?t._events=new o:delete t._events[e]}function f(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),f.prototype.eventNames=function(){var t,e,r=[];if(0===this._eventsCount)return r;for(e in t=this._events)n.call(t,e)&&r.push(i?e.slice(1):e);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},f.prototype.listeners=function(t){var e=i?i+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,o=r.length,a=new Array(o);n0&&a.length>i&&!a.warned){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=a.length,s=u,console&&console.warn&&console.warn(s)}return t}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=l.bind(n);return i.listener=r,n.wrapFn=i,i}function b(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var u=i[t];if(void 0===u)return!1;if("function"==typeof u)a(u,this,e);else{var f=u.length,c=y(u,f);for(r=0;r=0;o--)if(r[o]===e||r[o].listener===e){a=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},u.prototype.listeners=function(t){return b(this,t,!0)},u.prototype.rawListeners=function(t){return b(this,t,!1)},u.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):m.call(t,e)},u.prototype.listenerCount=m,u.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(t,e,r){"use strict";(function(e,n,i){var o=r(54);function a(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}(e,t)}}t.exports=v;var s,u=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?n:o.nextTick;v.WritableState=y;var f=r(41);f.inherits=r(3);var c={deprecate:r(236)},h=r(113),d=r(4).Buffer,l=i.Uint8Array||function(){};var p,b=r(114);function m(){}function y(t,e){s=s||r(31),t=t||{};var n=e instanceof s;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,f=t.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(f||0===f)?f:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var h=!1===t.decodeStrings;this.decodeStrings=!h,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,i=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,i){--e.pendingcb,r?(o.nextTick(i,n),o.nextTick(S,t,e),t._writableState.errorEmitted=!0,t.emit("error",n)):(i(n),t._writableState.errorEmitted=!0,t.emit("error",n),S(t,e))}(t,r,n,e,i);else{var a=k(r);a||r.corked||r.bufferProcessing||!r.bufferedRequest||_(t,r),n?u(w,t,r,a,i):w(t,r,a,i)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function v(t){if(s=s||r(31),!(p.call(v,this)||this instanceof s))return new v(t);this._writableState=new y(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),h.call(this)}function g(t,e,r,n,i,o,a){e.writelen=n,e.writecb=a,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function w(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit("drain"))}(t,e),e.pendingcb--,n(),S(t,e)}function _(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),o=e.corkedRequestsFree;o.entry=r;for(var s=0,u=!0;r;)i[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;i.allBuffers=u,g(t,e,!0,e.length,i,"",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new a(e),e.bufferedRequestCount=0}else{for(;r;){var f=r.chunk,c=r.encoding,h=r.callback;if(g(t,e,!1,e.objectMode?1:f.length,f,c,h),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function k(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function A(t,e){t._final((function(r){e.pendingcb--,r&&t.emit("error",r),e.prefinished=!0,t.emit("prefinish"),S(t,e)}))}function S(t,e){var r=k(e);return r&&(!function(t,e){e.prefinished||e.finalCalled||("function"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(A,t,e)):(e.prefinished=!0,t.emit("prefinish")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit("finish"))),r}f.inherits(v,h),y.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(y.prototype,"buffer",{get:c.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(t){return!!p.call(this,t)||this===v&&(t&&t._writableState instanceof y)}})):p=function(t){return t instanceof this},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},v.prototype.write=function(t,e,r){var n,i=this._writableState,a=!1,s=!i.objectMode&&(n=t,d.isBuffer(n)||n instanceof l);return s&&!d.isBuffer(t)&&(t=function(t){return d.from(t)}(t)),"function"==typeof e&&(r=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),"function"!=typeof r&&(r=m),i.ended?function(t,e){var r=new Error("write after end");t.emit("error",r),o.nextTick(e,r)}(this,r):(s||function(t,e,r,n){var i=!0,a=!1;return null===r?a=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||e.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(t.emit("error",a),o.nextTick(n,a),i=!1),i}(this,i,t,r))&&(i.pendingcb++,a=function(t,e,r,n,i,o){if(!r){var a=function(t,e,r){t.objectMode||!1===t.decodeStrings||"string"!=typeof e||(e=d.from(e,r));return e}(e,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(v.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),v.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},v.prototype._writev=null,v.prototype.end=function(t,e,r){var n=this._writableState;"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(t,e,r){e.ending=!0,S(t,e),r&&(e.finished?o.nextTick(r):t.once("finish",r));e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),v.prototype.destroy=b.destroy,v.prototype._undestroy=b.undestroy,v.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r(12),r(115).setImmediate,r(7))},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(){this.listeners={}}return t.prototype.addEventListener=function(t,e){t=t.toLowerCase(),this.listeners[t]=this.listeners[t]||[],this.listeners[t].push(e.handleEvent||e)},t.prototype.removeEventListener=function(t,e){if(t=t.toLowerCase(),this.listeners[t]){var r=this.listeners[t].indexOf(e.handleEvent||e);r<0||this.listeners[t].splice(r,1)}},t.prototype.dispatchEvent=function(t){var e=t.type.toLowerCase();if(t.target=this,this.listeners[e])for(var r=0,n=this.listeners[e];r>1]>>4>=8&&(e[s]=e[s].toUpperCase()),(15&a[s>>1])>=8&&(e[s+1]=e[s+1].toUpperCase());return"0x"+e.join("")}for(var h={},d=0;d<10;d++)h[String(d)]=String(d);for(var l=0;l<26;l++)h[String.fromCharCode(65+l)]=String(10+l);var p,b=Math.floor((p=9007199254740991,Math.log10?Math.log10(p):Math.log(p)/Math.LN10));function m(t){for(var e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map((function(t){return h[t]})).join("");e.length>=b;){var r=e.substring(0,b);e=parseInt(r,10)%97+e.substring(r.length)}for(var n=String(98-parseInt(e,10)%97);n.length<2;)n="0"+n;return n}function y(t){var e=null;if("string"!=typeof t&&f.throwArgumentError("invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==t.substring(0,2)&&(t="0x"+t),e=c(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&f.throwArgumentError("bad address checksum","address",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==m(t)&&f.throwArgumentError("bad icap checksum","address",t),e=(0,i._base36To16)(t.substring(4));e.length<40;)e="0"+e;e=c("0x"+e)}else f.throwArgumentError("invalid address","address",t);return e}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"AddressZero",{enumerable:!0,get:function(){return n.AddressZero}}),Object.defineProperty(e,"NegativeOne",{enumerable:!0,get:function(){return i.NegativeOne}}),Object.defineProperty(e,"Zero",{enumerable:!0,get:function(){return i.Zero}}),Object.defineProperty(e,"One",{enumerable:!0,get:function(){return i.One}}),Object.defineProperty(e,"Two",{enumerable:!0,get:function(){return i.Two}}),Object.defineProperty(e,"WeiPerEther",{enumerable:!0,get:function(){return i.WeiPerEther}}),Object.defineProperty(e,"MaxUint256",{enumerable:!0,get:function(){return i.MaxUint256}}),Object.defineProperty(e,"HashZero",{enumerable:!0,get:function(){return o.HashZero}}),Object.defineProperty(e,"EtherSymbol",{enumerable:!0,get:function(){return a.EtherSymbol}});var n=r(259),i=r(260),o=r(261),a=r(262)},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.FunctionFragment=e.ConstructorFragment=e.EventFragment=e.Fragment=e.ParamType=e.FormatTypes=void 0;var i=n(r(19)),o=n(r(20)),a=n(r(17)),s=n(r(6)),u=n(r(8)),f=r(33),c=r(36),h=r(16),d=r(43);function l(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,a.default)(t);if(e){var i=(0,a.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,o.default)(this,r)}}var p=new h.Logger(d.version),b={},m={calldata:!0,memory:!0,storage:!0},y={calldata:!0,memory:!0};function v(t,e){if("bytes"===t||"string"===t){if(m[e])return!0}else if("address"===t){if("payable"===e)return!0}else if((t.indexOf("[")>=0||"tuple"===t)&&y[e])return!0;return(m[e]||"payable"===e)&&p.throwArgumentError("invalid modifier","name",e),!1}function g(t,e){for(var r in e)(0,c.defineReadOnly)(t,r,e[r])}var w=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"});e.FormatTypes=w;var _=new RegExp(/^(.*)\[([0-9]*)\]$/),k=function(){function t(e,r){(0,s.default)(this,t),e!==b&&p.throwError("use fromString",h.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),g(this,r);var n=this.type.match(_);g(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:t.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}return(0,u.default)(t,[{key:"format",value:function(t){if(t||(t=w.sighash),w[t]||p.throwArgumentError("invalid format type","format",t),t===w.json){var e={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(e.indexed=this.indexed),this.components&&(e.components=this.components.map((function(e){return JSON.parse(e.format(t))}))),JSON.stringify(e)}var r="";return"array"===this.baseType?(r+=this.arrayChildren.format(t),r+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(t!==w.sighash&&(r+=this.type),r+="("+this.components.map((function(e){return e.format(t)})).join(t===w.full?", ":",")+")"):r+=this.type,t!==w.sighash&&(!0===this.indexed&&(r+=" indexed"),t===w.full&&this.name&&(r+=" "+this.name)),r}}],[{key:"from",value:function(e,r){return"string"==typeof e?t.fromString(e,r):t.fromObject(e)}},{key:"fromObject",value:function(e){return t.isParamType(e)?e:new t(b,{name:e.name||null,type:C(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(t.fromObject):null})}},{key:"fromString",value:function(e,r){return function(e){return t.fromObject({name:e.name,type:e.type,indexed:e.indexed,components:e.components})}(function(t,e){var r=t;function n(e){p.throwArgumentError("unexpected character at position ".concat(e),"param",t)}function i(t){var r={type:"",name:"",parent:t,state:{allowType:!0}};return e&&(r.indexed=!1),r}t=t.replace(/\s/g," ");for(var o={type:"",name:"",state:{allowType:!0}},a=o,s=0;s2&&p.throwArgumentError("invalid human-readable ABI signature","value",t),r[1].match(/^[0-9]+$/)||p.throwArgumentError("invalid human-readable ABI signature gas","value",t),e.gas=f.BigNumber.from(r[1]),r[0]):t}function x(t,e){e.constant=!1,e.payable=!1,e.stateMutability="nonpayable",t.split(" ").forEach((function(t){switch(t.trim()){case"constant":e.constant=!0;break;case"payable":e.payable=!0,e.stateMutability="payable";break;case"nonpayable":e.payable=!1,e.stateMutability="nonpayable";break;case"pure":e.constant=!0,e.stateMutability="pure";break;case"view":e.constant=!0,e.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+t)}}))}function I(t){var e={constant:!1,payable:!0,stateMutability:"payable"};return null!=t.stateMutability?(e.stateMutability=t.stateMutability,e.constant="view"===e.stateMutability||"pure"===e.stateMutability,null!=t.constant&&!!t.constant!==e.constant&&p.throwArgumentError("cannot have constant function with mutability "+e.stateMutability,"value",t),e.payable="payable"===e.stateMutability,null!=t.payable&&!!t.payable!==e.payable&&p.throwArgumentError("cannot have payable function with mutability "+e.stateMutability,"value",t)):null!=t.payable?(e.payable=!!t.payable,null!=t.constant||e.payable||"constructor"===t.type||p.throwArgumentError("unable to determine stateMutability","value",t),e.constant=!!t.constant,e.constant?e.stateMutability="view":e.stateMutability=e.payable?"payable":"nonpayable",e.payable&&e.constant&&p.throwArgumentError("cannot have constant payable function","value",t)):null!=t.constant?(e.constant=!!t.constant,e.payable=!e.constant,e.stateMutability=e.constant?"view":"payable"):"constructor"!==t.type&&p.throwArgumentError("unable to determine stateMutability","value",t),e}e.EventFragment=M;var O=function(t){(0,i.default)(r,t);var e=l(r);function r(){return(0,s.default)(this,r),e.apply(this,arguments)}return(0,u.default)(r,[{key:"format",value:function(t){if(t||(t=w.sighash),w[t]||p.throwArgumentError("invalid format type","format",t),t===w.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payble:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((function(e){return JSON.parse(e.format(t))}))});t===w.sighash&&p.throwError("cannot format a constructor for sighash",h.Logger.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});var e="constructor("+this.inputs.map((function(e){return e.format(t)})).join(t===w.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(e+=this.stateMutability+" "),e.trim()}}],[{key:"from",value:function(t){return"string"==typeof t?r.fromString(t):r.fromObject(t)}},{key:"fromObject",value:function(t){if(r.isConstructorFragment(t))return t;"constructor"!==t.type&&p.throwArgumentError("invalid constructor object","value",t);var e=I(t);e.constant&&p.throwArgumentError("constructor cannot be constant","value",t);var n={name:null,type:t.type,inputs:t.inputs?t.inputs.map(k.fromObject):[],payable:e.payable,stateMutability:e.stateMutability,gas:t.gas?f.BigNumber.from(t.gas):null};return new r(b,n)}},{key:"fromString",value:function(t){var e={type:"constructor"},n=(t=E(t,e)).match(R);return n&&"constructor"===n[1].trim()||p.throwArgumentError("invalid constructor string","value",t),e.inputs=A(n[2].trim(),!1),x(n[3].trim(),e),r.fromObject(e)}},{key:"isConstructorFragment",value:function(t){return t&&t._isFragment&&"constructor"===t.type}}]),r}(S);e.ConstructorFragment=O;var P=function(t){(0,i.default)(r,t);var e=l(r);function r(){return(0,s.default)(this,r),e.apply(this,arguments)}return(0,u.default)(r,[{key:"format",value:function(t){if(t||(t=w.sighash),w[t]||p.throwArgumentError("invalid format type","format",t),t===w.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payble:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((function(e){return JSON.parse(e.format(t))})),ouputs:this.outputs.map((function(e){return JSON.parse(e.format(t))}))});var e="";return t!==w.sighash&&(e+="function "),e+=this.name+"("+this.inputs.map((function(e){return e.format(t)})).join(t===w.full?", ":",")+") ",t!==w.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(e+=this.stateMutability+" "):this.constant&&(e+="view "),this.outputs&&this.outputs.length&&(e+="returns ("+this.outputs.map((function(e){return e.format(t)})).join(", ")+") "),null!=this.gas&&(e+="@"+this.gas.toString()+" ")),e.trim()}}],[{key:"from",value:function(t){return"string"==typeof t?r.fromString(t):r.fromObject(t)}},{key:"fromObject",value:function(t){if(r.isFunctionFragment(t))return t;"function"!==t.type&&p.throwArgumentError("invalid function object","value",t);var e=I(t),n={type:t.type,name:T(t.name),constant:e.constant,inputs:t.inputs?t.inputs.map(k.fromObject):[],outputs:t.outputs?t.outputs.map(k.fromObject):[],payable:e.payable,stateMutability:e.stateMutability,gas:t.gas?f.BigNumber.from(t.gas):null};return new r(b,n)}},{key:"fromString",value:function(t){var e={type:"function"},n=(t=E(t,e)).split(" returns ");n.length>2&&p.throwArgumentError("invalid function string","value",t);var i=n[0].match(R);if(i||p.throwArgumentError("invalid function signature","value",t),e.name=i[1].trim(),e.name&&T(e.name),e.inputs=A(i[2],!1),x(i[3].trim(),e),n.length>1){var o=n[1].match(R);""==o[1].trim()&&""==o[3].trim()||p.throwArgumentError("unexpected tokens","value",t),e.outputs=A(o[2],!1)}else e.outputs=[];return r.fromObject(e)}},{key:"isFunctionFragment",value:function(t){return t&&t._isFragment&&"function"===t.type}}]),r}(O);function C(t){return t.match(/^uint($|[^1-9])/)?t="uint256"+t.substring(4):t.match(/^int($|[^1-9])/)&&(t="int256"+t.substring(3)),t}e.FunctionFragment=P;var B=new RegExp("^[A-Za-z_][A-Za-z0-9_]*$");function T(t){return t&&t.match(B)||p.throwArgumentError('invalid identifier "'.concat(t,'"'),"value",t),t}var R=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$")},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toUtf8Bytes=d,e._toEscapedUtf8String=function(t,e){return'"'+h(t,e).map((function(t){if(t<256){switch(t){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(t>=32&&t<127)return String.fromCharCode(t)}return t<=65535?l(t):l(55296+((t-=65536)>>10&1023))+l(56320+(1023&t))})).join("")+'"'},e._toUtf8String=p,e.toUtf8String=function(t,e){return p(h(t,e))},e.toUtf8CodePoints=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.current;return h(d(t,e))},e.Utf8ErrorFuncs=e.Utf8ErrorReason=e.UnicodeNormalizationForm=void 0;var n,i,o=r(13),a=r(16),s=r(287),u=new a.Logger(s.version);function f(t,e,r,n,o){if(t===i.BAD_PREFIX||t===i.UNEXPECTED_CONTINUE){for(var a=0,s=e+1;s>6==2;s++)a++;return a}return t===i.OVERRUN?r.length-e-1:0}e.UnicodeNormalizationForm=n,function(t){t.current="",t.NFC="NFC",t.NFD="NFD",t.NFKC="NFKC",t.NFKD="NFKD"}(n||(e.UnicodeNormalizationForm=n={})),e.Utf8ErrorReason=i,function(t){t.UNEXPECTED_CONTINUE="unexpected continuation byte",t.BAD_PREFIX="bad codepoint prefix",t.OVERRUN="string overrun",t.MISSING_CONTINUE="missing continuation byte",t.OUT_OF_RANGE="out of UTF-8 range",t.UTF16_SURROGATE="UTF-16 surrogate",t.OVERLONG="overlong representation"}(i||(e.Utf8ErrorReason=i={}));var c=Object.freeze({error:function(t,e,r,n,i){return u.throwArgumentError("invalid codepoint at offset ".concat(e,"; ").concat(t),"bytes",r)},ignore:f,replace:function(t,e,r,n,o){return t===i.OVERLONG?(n.push(o),0):(n.push(65533),f(t,e,r))}});function h(t,e){null==e&&(e=c.error),t=(0,o.arrayify)(t);for(var r=[],n=0;n>7!=0){var s=null,u=null;if(192==(224&a))s=1,u=127;else if(224==(240&a))s=2,u=2047;else{if(240!=(248&a)){n+=e(128==(192&a)?i.UNEXPECTED_CONTINUE:i.BAD_PREFIX,n-1,t,r);continue}s=3,u=65535}if(n-1+s>=t.length)n+=e(i.OVERRUN,n-1,t,r);else{for(var f=a&(1<<8-s-1)-1,h=0;h1114111?n+=e(i.OUT_OF_RANGE,n-1-s,t,r,f):f>=55296&&f<=57343?n+=e(i.UTF16_SURROGATE,n-1-s,t,r,f):f<=u?n+=e(i.OVERLONG,n-1-s,t,r,f):r.push(f))}}else r.push(a)}return r}function d(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.current;e!=n.current&&(u.checkNormalize(),t=t.normalize(e));for(var r=[],i=0;i>6|192),r.push(63&a|128);else if(55296==(64512&a)){i++;var s=t.charCodeAt(i);if(i>=t.length||56320!=(64512&s))throw new Error("invalid utf-8 string");var f=65536+((1023&a)<<10)+(1023&s);r.push(f>>18|240),r.push(f>>12&63|128),r.push(f>>6&63|128),r.push(63&f|128)}else r.push(a>>12|224),r.push(a>>6&63|128),r.push(63&a|128)}return(0,o.arrayify)(r)}function l(t){var e="0000"+t.toString(16);return"\\u"+e.substring(e.length-4)}function p(t){return t.map((function(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t)))})).join("")}e.Utf8ErrorFuncs=c},function(t,e,r){"use strict";var n=r(2).Buffer,i=r(313),o=r(44),a=r(319);function s(t){e.decode(t)}e.names=a.names,e.codes=a.codes,e.defaultLengths=a.defaultLengths,e.toHexString=function(t){if(!n.isBuffer(t))throw new Error("must be passed a buffer");return t.toString("hex")},e.fromHexString=function(t){return n.from(t,"hex")},e.toB58String=function(t){if(!n.isBuffer(t))throw new Error("must be passed a buffer");return i.encode("base58btc",t).toString().slice(1)},e.fromB58String=function(t){var e=t;return n.isBuffer(t)&&(e=t.toString()),i.decode("z"+e)},e.decode=function(t){if(!n.isBuffer(t))throw new Error("multihash must be a Buffer");if(t.length<2)throw new Error("multihash too short. must be > 2 bytes.");var r=o.decode(t);if(!e.isValidCode(r))throw new Error("multihash unknown function code: 0x".concat(r.toString(16)));t=t.slice(o.decode.bytes);var i=o.decode(t);if(i<0)throw new Error("multihash invalid length: ".concat(i));if((t=t.slice(o.decode.bytes)).length!==i)throw new Error("multihash length inconsistent: 0x".concat(t.toString("hex")));return{code:r,name:a.codes[r],length:i,digest:t}},e.encode=function(t,r,i){if(!t||void 0===r)throw new Error("multihash encode requires at least two args: digest, code");var a=e.coerceCode(r);if(!n.isBuffer(t))throw new Error("digest should be a Buffer");if(null==i&&(i=t.length),i&&t.length!==i)throw new Error("digest length should be equal to specified length.");return n.concat([n.from(o.encode(a)),n.from(o.encode(i)),t])},e.coerceCode=function(t){var r=t;if("string"==typeof t){if(void 0===a.names[t])throw new Error("Unrecognized hash function named: ".concat(t));r=a.names[t]}if("number"!=typeof r)throw new Error("Hash function code should be a number. Got: ".concat(r));if(void 0===a.codes[r]&&!e.isAppCode(r))throw new Error("Unrecognized function code: ".concat(r));return r},e.isAppCode=function(t){return t>0&&t<16},e.isValidCode=function(t){return!!e.isAppCode(t)||!!a.codes[t]},e.validate=s,e.prefix=function(t){return s(t),t.slice(0,2)}},function(t,e,r){"use strict";r(342);var n=function(t,e){return parseInt(t.slice(2*e+2,2*e+4),16)},i=function(t){return(t.length-2)/2},o=function(t){for(var e=[],r=2,n=t.length;r>6|192);else{if(i>55295&&i<56320){if(++n==t.length)return null;var o=t.charCodeAt(n);if(o<56320||o>57343)return null;r+=e((i=65536+((1023&i)<<10)+(1023&o))>>18|240),r+=e(i>>12&63|128)}else r+=e(i>>12|224);r+=e(i>>6&63|128)}r+=e(63&i|128)}}return r},toString:function(t){for(var e="",r=0,o=i(t);r127){if(a>191&&a<224){if(r>=o)return null;a=(31&a)<<6|63&n(t,r)}else if(a>223&&a<240){if(r+1>=o)return null;a=(15&a)<<12|(63&n(t,r))<<6|63&n(t,++r)}else{if(!(a>239&&a<248))return null;if(r+2>=o)return null;a=(7&a)<<18|(63&n(t,r))<<12|(63&n(t,++r))<<6|63&n(t,++r)}++r}if(a<=65535)e+=String.fromCharCode(a);else{if(!(a<=1114111))return null;a-=65536,e+=String.fromCharCode(a>>10|55296),e+=String.fromCharCode(1023&a|56320)}}return e},fromNumber:function(t){var e=t.toString(16);return e.length%2==0?"0x"+e:"0x0"+e},toNumber:function(t){return parseInt(t.slice(2),16)},fromNat:function(t){return"0x0"===t?"0x":t.length%2==0?t:"0x0"+t.slice(2)},toNat:function(t){return"0"===t[2]?"0x"+t.slice(3):t},fromArray:a,toArray:o,fromUint8Array:function(t){return a([].slice.call(t,0))},toUint8Array:function(t){return new Uint8Array(o(t))}}},function(t,e,r){"use strict";var n=r(3),i=r(144),o=r(4).Buffer,a=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(t,e){return t<>>32-e}function f(t,e,r,n,i,o,a){return u(t+(e&r|~e&n)+i+o|0,a)+e|0}function c(t,e,r,n,i,o,a){return u(t+(e&n|r&~n)+i+o|0,a)+e|0}function h(t,e,r,n,i,o,a){return u(t+(e^r^n)+i+o|0,a)+e|0}function d(t,e,r,n,i,o,a){return u(t+(r^(e|~n))+i+o|0,a)+e|0}n(s,i),s.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,o=this._d;r=f(r,n,i,o,t[0],3614090360,7),o=f(o,r,n,i,t[1],3905402710,12),i=f(i,o,r,n,t[2],606105819,17),n=f(n,i,o,r,t[3],3250441966,22),r=f(r,n,i,o,t[4],4118548399,7),o=f(o,r,n,i,t[5],1200080426,12),i=f(i,o,r,n,t[6],2821735955,17),n=f(n,i,o,r,t[7],4249261313,22),r=f(r,n,i,o,t[8],1770035416,7),o=f(o,r,n,i,t[9],2336552879,12),i=f(i,o,r,n,t[10],4294925233,17),n=f(n,i,o,r,t[11],2304563134,22),r=f(r,n,i,o,t[12],1804603682,7),o=f(o,r,n,i,t[13],4254626195,12),i=f(i,o,r,n,t[14],2792965006,17),r=c(r,n=f(n,i,o,r,t[15],1236535329,22),i,o,t[1],4129170786,5),o=c(o,r,n,i,t[6],3225465664,9),i=c(i,o,r,n,t[11],643717713,14),n=c(n,i,o,r,t[0],3921069994,20),r=c(r,n,i,o,t[5],3593408605,5),o=c(o,r,n,i,t[10],38016083,9),i=c(i,o,r,n,t[15],3634488961,14),n=c(n,i,o,r,t[4],3889429448,20),r=c(r,n,i,o,t[9],568446438,5),o=c(o,r,n,i,t[14],3275163606,9),i=c(i,o,r,n,t[3],4107603335,14),n=c(n,i,o,r,t[8],1163531501,20),r=c(r,n,i,o,t[13],2850285829,5),o=c(o,r,n,i,t[2],4243563512,9),i=c(i,o,r,n,t[7],1735328473,14),r=h(r,n=c(n,i,o,r,t[12],2368359562,20),i,o,t[5],4294588738,4),o=h(o,r,n,i,t[8],2272392833,11),i=h(i,o,r,n,t[11],1839030562,16),n=h(n,i,o,r,t[14],4259657740,23),r=h(r,n,i,o,t[1],2763975236,4),o=h(o,r,n,i,t[4],1272893353,11),i=h(i,o,r,n,t[7],4139469664,16),n=h(n,i,o,r,t[10],3200236656,23),r=h(r,n,i,o,t[13],681279174,4),o=h(o,r,n,i,t[0],3936430074,11),i=h(i,o,r,n,t[3],3572445317,16),n=h(n,i,o,r,t[6],76029189,23),r=h(r,n,i,o,t[9],3654602809,4),o=h(o,r,n,i,t[12],3873151461,11),i=h(i,o,r,n,t[15],530742520,16),r=d(r,n=h(n,i,o,r,t[2],3299628645,23),i,o,t[0],4096336452,6),o=d(o,r,n,i,t[7],1126891415,10),i=d(i,o,r,n,t[14],2878612391,15),n=d(n,i,o,r,t[5],4237533241,21),r=d(r,n,i,o,t[12],1700485571,6),o=d(o,r,n,i,t[3],2399980690,10),i=d(i,o,r,n,t[10],4293915773,15),n=d(n,i,o,r,t[1],2240044497,21),r=d(r,n,i,o,t[8],1873313359,6),o=d(o,r,n,i,t[15],4264355552,10),i=d(i,o,r,n,t[6],2734768916,15),n=d(n,i,o,r,t[13],1309151649,21),r=d(r,n,i,o,t[4],4149444226,6),o=d(o,r,n,i,t[11],3174756917,10),i=d(i,o,r,n,t[2],718787259,15),n=d(n,i,o,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s},function(t,e,r){"use strict";var n=r(2).Buffer,i=r(3),o=r(144),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],f=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],c=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function l(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(t,e){return t<>>32-e}function b(t,e,r,n,i,o,a,s){return p(t+(e^r^n)+o+a|0,s)+i|0}function m(t,e,r,n,i,o,a,s){return p(t+(e&r|~e&n)+o+a|0,s)+i|0}function y(t,e,r,n,i,o,a,s){return p(t+((e|~r)^n)+o+a|0,s)+i|0}function v(t,e,r,n,i,o,a,s){return p(t+(e&n|r&~n)+o+a|0,s)+i|0}function g(t,e,r,n,i,o,a,s){return p(t+(e^(r|~n))+o+a|0,s)+i|0}i(l,o),l.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,l=0|this._e,w=0|this._a,_=0|this._b,k=0|this._c,A=0|this._d,S=0|this._e,M=0;M<80;M+=1){var E,x;M<16?(E=b(r,n,i,o,l,t[s[M]],h[0],f[M]),x=g(w,_,k,A,S,t[u[M]],d[0],c[M])):M<32?(E=m(r,n,i,o,l,t[s[M]],h[1],f[M]),x=v(w,_,k,A,S,t[u[M]],d[1],c[M])):M<48?(E=y(r,n,i,o,l,t[s[M]],h[2],f[M]),x=y(w,_,k,A,S,t[u[M]],d[2],c[M])):M<64?(E=v(r,n,i,o,l,t[s[M]],h[3],f[M]),x=m(w,_,k,A,S,t[u[M]],d[3],c[M])):(E=g(r,n,i,o,l,t[s[M]],h[4],f[M]),x=b(w,_,k,A,S,t[u[M]],d[4],c[M])),r=l,l=o,o=p(i,10),i=n,n=E,w=S,S=A,A=p(k,10),k=_,_=x}var I=this._b+i+A|0;this._b=this._c+o+S|0,this._c=this._d+l+w|0,this._d=this._e+r+_|0,this._e=this._a+n+k|0,this._a=I},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=n.alloc?n.alloc(20):new n(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=l},function(t,e,r){"use strict";var n=t.exports=function(t){t=t.toLowerCase();var e=n[t];if(!e)throw new Error(t+" is not supported (we accept pull requests)");return new e};n.sha=r(347),n.sha1=r(348),n.sha224=r(349),n.sha256=r(145),n.sha384=r(350),n.sha512=r(146)},function(t,e,r){"use strict";e.utils=r(356),e.Cipher=r(357),e.DES=r(358),e.CBC=r(359),e.EDE=r(360)},function(t,e,r){"use strict";var n=r(361),i=r(369),o=r(156);e.createCipher=e.Cipher=n.createCipher,e.createCipheriv=e.Cipheriv=n.createCipheriv,e.createDecipher=e.Decipher=i.createDecipher,e.createDecipheriv=e.Decipheriv=i.createDecipheriv,e.listCiphers=e.getCiphers=function(){return Object.keys(o)}},function(t,e,r){"use strict";var n={ECB:r(362),CBC:r(363),CFB:r(364),CFB8:r(365),CFB1:r(366),OFB:r(367),CTR:r(154),GCM:r(154)},i=r(156);for(var o in i)i[o].module=n[i[o].mode];t.exports=i},function(t,e,r){"use strict";var n,i=r(0)(r(1));function o(t){this.rand=t}if(t.exports=function(t){return n||(n=new o(null)),n.generate(t)},t.exports.Rand=o,o.prototype.generate=function(t){return this._rand(t)},o.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r=0||!r.umod(t.prime1)||!r.umod(t.prime2);)r=new n(i(e));return r}t.exports=o,o.getr=a}).call(this,r(2).Buffer)},function(t,e,r){"use strict";var n,i=e,o=r(60),a=r(162),s=r(22).assert;function u(t){"short"===t.type?this.curve=new a.short(t):"edwards"===t.type?this.curve=new a.edwards(t):this.curve=new a.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function f(t,e){Object.defineProperty(i,t,{configurable:!0,enumerable:!0,get:function(){var r=new u(e);return Object.defineProperty(i,t,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=u,f("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),f("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),f("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),f("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),f("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),f("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),f("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(381)}catch(t){n=void 0}f("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(t,e,r){"use strict";t.exports=r(414)(r(418))},function(t,e,r){"use strict";var n,i=e,o=r(95),a=r(183),s=r(23).assert;function u(t){"short"===t.type?this.curve=new a.short(t):"edwards"===t.type?this.curve=new a.edwards(t):this.curve=new a.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function f(t,e){Object.defineProperty(i,t,{configurable:!0,enumerable:!0,get:function(){var r=new u(e);return Object.defineProperty(i,t,{configurable:!0,enumerable:!0,value:r}),r}})}i.PresetCurve=u,f("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),f("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),f("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),f("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),f("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),f("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),f("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=r(440)}catch(t){n=void 0}f("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})},function(t,e,r){"use strict";var n=e;n.utils=r(27),n.common=r(51),n.sha=r(434),n.ripemd=r(438),n.hmac=r(439),n.sha1=n.sha.sha1,n.sha256=n.sha.sha256,n.sha224=n.sha.sha224,n.sha384=n.sha.sha384,n.sha512=n.sha.sha512,n.ripemd160=n.ripemd.ripemd160},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=r(15);function i(t,e){if("00"===t.slice(0,2))throw new Error("invalid RLP: extra zeros");return parseInt(t,e)}function o(e,r){if(e<56)return t.from([e+r]);var n=s(e),i=s(r+55+n.length/2);return t.from(i+n,"hex")}function a(t){return"0x"===t.slice(0,2)}function s(t){if(t<0)throw new Error("Invalid integer as argument, must be unsigned!");var e=t.toString(16);return e.length%2?"0"+e:e}function u(e){if(!t.isBuffer(e)){if("string"==typeof e)return a(e)?t.from((i="string"!=typeof(o=e)?o:a(o)?o.slice(2):o).length%2?"0"+i:i,"hex"):t.from(e);if("number"==typeof e)return e?(r=s(e),t.from(r,"hex")):t.from([]);if(null==e)return t.from([]);if(e instanceof Uint8Array)return t.from(e);if(n.isBN(e))return t.from(e.toArray());throw new Error("invalid type")}var r,i,o;return e}e.encode=function e(r){if(Array.isArray(r)){for(var n=[],i=0;ir.length)throw new Error("invalid rlp: total length is larger than the data");if(0===(s=r.slice(o,h)).length)throw new Error("invalid rlp, List has a invalid length");for(;s.length;)u=e(s),f.push(u.data),s=u.remainder;return{data:f,remainder:r.slice(h)}}(u(e));if(r)return n;if(0!==n.remainder.length)throw new Error("invalid remainder");return n.data},e.getLength=function(e){if(!e||0===e.length)return t.from([]);var r=u(e),n=r[0];if(n<=127)return r.length;if(n<=183)return n-127;if(n<=191)return n-182;if(n<=247)return n-191;var o=n-246;return o+i(r.slice(1,o).toString("hex"),16)}}).call(this,r(2).Buffer)},function(t,e,r){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT -*/var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var r,s,f=a(e),u=1;u=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),b(r)?n.showHidden=r:r&&t._extend(n,r),g(n.showHidden)&&(n.showHidden=!1),g(n.depth)&&(n.depth=2),g(n.colors)&&(n.colors=!1),g(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=u),h(n,e,n.depth)}function u(e,t){var r=f.styles[t];return r?"["+f.colors[r][0]+"m"+e+"["+f.colors[r][1]+"m":e}function c(e,t){return e}function h(e,r,n){if(e.customInspect&&r&&S(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return y(i)||(i=h(e,i,n)),i}var o=function(e,t){if(g(t))return e.stylize("undefined","undefined");if(y(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(v(t))return e.stylize(""+t,"number");if(b(t))return e.stylize(""+t,"boolean");if(m(t))return e.stylize("null","null")}(e,r);if(o)return o;var a=Object.keys(r),s=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(r)),A(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return d(r);if(0===a.length){if(S(r)){var f=r.name?": "+r.name:"";return e.stylize("[Function"+f+"]","special")}if(w(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(k(r))return e.stylize(Date.prototype.toString.call(r),"date");if(A(r))return d(r)}var u,c="",_=!1,E=["{","}"];(p(r)&&(_=!0,E=["[","]"]),S(r))&&(c=" [Function"+(r.name?": "+r.name:"")+"]");return w(r)&&(c=" "+RegExp.prototype.toString.call(r)),k(r)&&(c=" "+Date.prototype.toUTCString.call(r)),A(r)&&(c=" "+d(r)),0!==a.length||_&&0!=r.length?n<0?w(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special"):(e.seen.push(r),u=_?function(e,t,r,n,i){for(var o=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(u,c,E)):E[0]+c+E[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function l(e,t,r,n,i,o){var a,s,f;if((f=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=f.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):f.set&&(s=e.stylize("[Setter]","special")),P(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(f.value)<0?(s=m(r)?h(e,f.value,null):h(e,f.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),g(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function m(e){return null===e}function v(e){return"number"==typeof e}function y(e){return"string"==typeof e}function g(e){return void 0===e}function w(e){return _(e)&&"[object RegExp]"===E(e)}function _(e){return"object"===(0,n.default)(e)&&null!==e}function k(e){return _(e)&&"[object Date]"===E(e)}function A(e){return _(e)&&("[object Error]"===E(e)||e instanceof Error)}function S(e){return"function"==typeof e}function E(e){return Object.prototype.toString.call(e)}function M(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(r){if(g(a)&&(a=e.env.NODE_DEBUG||""),r=r.toUpperCase(),!s[r])if(new RegExp("\\b"+r+"\\b","i").test(a)){var n=e.pid;s[r]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",r,n,e)}}else s[r]=function(){};return s[r]},t.inspect=f,f.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},f.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=b,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=v,t.isString=y,t.isSymbol=function(e){return"symbol"===(0,n.default)(e)},t.isUndefined=g,t.isRegExp=w,t.isObject=_,t.isDate=k,t.isError=A,t.isFunction=S,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===(0,n.default)(e)||void 0===e},t.isBuffer=r(216);var x=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function I(){var e=new Date,t=[M(e.getHours()),M(e.getMinutes()),M(e.getSeconds())].join(":");return[e.getDate(),x[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",I(),t.format.apply(t,arguments))},t.inherits=r(3),t._extend=function(e,t){if(!t||!_(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var N="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,t){if(!e){var r=new Error("Promise was rejected with a falsy value");r.reason=e,e=r}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(N&&e[N]){var t;if("function"!=typeof(t=e[N]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,N,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n})),i=[],o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(e,t,r,n){for(var i=0,o=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(e){return e instanceof a||null!==e&&"object"===(0,t.default)(e)&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,r,n){if("number"==typeof e)return this._initNumber(e,r,n);if("object"===(0,t.default)(e))return this._initArray(e,r,n);"hex"===r&&(r=16),i(r===(0|r)&&r>=2&&r<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&o++,16===r?this._parseHex(e,o):this._parseBase(e,r,o),"-"===e[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),r,n)},a.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(i(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},a.prototype._initArray=function(e,t,r){if(i("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=6)i=f(e,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==t&&(i=f(e,t,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,a=o%n,s=Math.min(o,o-a)+r,f=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],a=i*o,s=67108863&a,f=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,h=67108863&f,d=Math.min(u,t.length-1),l=Math.max(0,u-e.length+1);l<=d;l++){var p=u-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.words[l])+h)/67108864|0,h=67108863&a}r.words[u]=0|h,f=0|c}return 0!==f?r.words[u]=0|f:r.length--,r.strip()}a.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?c[6-f.length]+f+r:f+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var u=h[e],l=d[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(e);r=(p=p.idivn(l)).isZero()?b+r:c[u-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return i(void 0!==s),this.toArrayLike(s,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,f="le"===t,u=new e(o),c=this.clone();if(f){for(s=0;!c.isZero();s++)a=c.andln(255),c.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==o&&a>26,this.words[a]=67108863&t;if(0===o&&a>>13,l=0|a[1],p=8191&l,b=l>>>13,m=0|a[2],v=8191&m,y=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],A=8191&k,S=k>>>13,E=0|a[5],M=8191&E,x=E>>>13,I=0|a[6],P=8191&I,N=I>>>13,O=0|a[7],R=8191&O,U=O>>>13,C=0|a[8],B=8191&C,T=C>>>13,j=0|a[9],L=8191&j,F=j>>>13,D=0|s[0],z=8191&D,q=D>>>13,H=0|s[1],K=8191&H,V=H>>>13,G=0|s[2],W=8191&G,$=G>>>13,Y=0|s[3],Z=8191&Y,J=Y>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,ie=0|s[6],oe=8191&ie,ae=ie>>>13,se=0|s[7],fe=8191&se,ue=se>>>13,ce=0|s[8],he=8191&ce,de=ce>>>13,le=0|s[9],pe=8191&le,be=le>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(h,z))|0)+((8191&(i=(i=Math.imul(h,q))+Math.imul(d,z)|0))<<13)|0;u=((o=Math.imul(d,q))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,z),i=(i=Math.imul(p,q))+Math.imul(b,z)|0,o=Math.imul(b,q);var ve=(u+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(d,K)|0))<<13)|0;u=((o=o+Math.imul(d,V)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,z),i=(i=Math.imul(v,q))+Math.imul(y,z)|0,o=Math.imul(y,q),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var ye=(u+(n=n+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,$)|0)+Math.imul(d,W)|0))<<13)|0;u=((o=o+Math.imul(d,$)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,z),i=(i=Math.imul(w,q))+Math.imul(_,z)|0,o=Math.imul(_,q),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,$)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,$)|0;var ge=(u+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,Z)|0))<<13)|0;u=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(A,z),i=(i=Math.imul(A,q))+Math.imul(S,z)|0,o=Math.imul(S,q),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(v,W)|0,i=(i=i+Math.imul(v,$)|0)+Math.imul(y,W)|0,o=o+Math.imul(y,$)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,Z)|0,o=o+Math.imul(b,J)|0;var we=(u+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;u=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(M,z),i=(i=Math.imul(M,q))+Math.imul(x,z)|0,o=Math.imul(x,q),n=n+Math.imul(A,K)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(w,W)|0,i=(i=i+Math.imul(w,$)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,$)|0,n=n+Math.imul(v,Z)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,J)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,ee)|0;var _e=(u+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;u=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,z),i=(i=Math.imul(P,q))+Math.imul(N,z)|0,o=Math.imul(N,q),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,$)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,$)|0,n=n+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,Z)|0,o=o+Math.imul(_,J)|0,n=n+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,ee)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0;var ke=(u+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;u=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(R,z),i=(i=Math.imul(R,q))+Math.imul(U,z)|0,o=Math.imul(U,q),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,V)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,V)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,$)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,$)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,J)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,i=(i=i+Math.imul(v,ne)|0)+Math.imul(y,re)|0,o=o+Math.imul(y,ne)|0,n=n+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,ae)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,ae)|0;var Ae=(u+(n=n+Math.imul(h,fe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ue)|0)+Math.imul(d,fe)|0))<<13)|0;u=((o=o+Math.imul(d,ue)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(B,z),i=(i=Math.imul(B,q))+Math.imul(T,z)|0,o=Math.imul(T,q),n=n+Math.imul(R,K)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,V)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,$)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,$)|0,n=n+Math.imul(M,Z)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(v,oe)|0,i=(i=i+Math.imul(v,ae)|0)+Math.imul(y,oe)|0,o=o+Math.imul(y,ae)|0,n=n+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,ue)|0)+Math.imul(b,fe)|0,o=o+Math.imul(b,ue)|0;var Se=(u+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;u=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,z),i=(i=Math.imul(L,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(B,K)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(R,W)|0,i=(i=i+Math.imul(R,$)|0)+Math.imul(U,W)|0,o=o+Math.imul(U,$)|0,n=n+Math.imul(P,Z)|0,i=(i=i+Math.imul(P,J)|0)+Math.imul(N,Z)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,ae)|0,n=n+Math.imul(v,fe)|0,i=(i=i+Math.imul(v,ue)|0)+Math.imul(y,fe)|0,o=o+Math.imul(y,ue)|0,n=n+Math.imul(p,he)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(b,he)|0,o=o+Math.imul(b,de)|0;var Ee=(u+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;u=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(F,K)|0,o=Math.imul(F,V),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,$)|0)+Math.imul(T,W)|0,o=o+Math.imul(T,$)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,J)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,ue)|0)+Math.imul(_,fe)|0,o=o+Math.imul(_,ue)|0,n=n+Math.imul(v,he)|0,i=(i=i+Math.imul(v,de)|0)+Math.imul(y,he)|0,o=o+Math.imul(y,de)|0;var Me=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;u=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,$))+Math.imul(F,W)|0,o=Math.imul(F,$),n=n+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(N,re)|0,o=o+Math.imul(N,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,ae)|0,n=n+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,ue)|0)+Math.imul(S,fe)|0,o=o+Math.imul(S,ue)|0,n=n+Math.imul(w,he)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,he)|0,o=o+Math.imul(_,de)|0;var xe=(u+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;u=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(F,Z)|0,o=Math.imul(F,J),n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(N,oe)|0,o=o+Math.imul(N,ae)|0,n=n+Math.imul(M,fe)|0,i=(i=i+Math.imul(M,ue)|0)+Math.imul(x,fe)|0,o=o+Math.imul(x,ue)|0,n=n+Math.imul(A,he)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Ie=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;u=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(F,Q)|0,o=Math.imul(F,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(P,fe)|0,i=(i=i+Math.imul(P,ue)|0)+Math.imul(N,fe)|0,o=o+Math.imul(N,ue)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(x,he)|0,o=o+Math.imul(x,de)|0;var Pe=(u+(n=n+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,be)|0)+Math.imul(S,pe)|0))<<13)|0;u=((o=o+Math.imul(S,be)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),i=(i=Math.imul(L,ne))+Math.imul(F,re)|0,o=Math.imul(F,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(R,fe)|0,i=(i=i+Math.imul(R,ue)|0)+Math.imul(U,fe)|0,o=o+Math.imul(U,ue)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(N,he)|0,o=o+Math.imul(N,de)|0;var Ne=(u+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(x,pe)|0))<<13)|0;u=((o=o+Math.imul(x,be)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(F,oe)|0,o=Math.imul(F,ae),n=n+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,ue)|0)+Math.imul(T,fe)|0,o=o+Math.imul(T,ue)|0,n=n+Math.imul(R,he)|0,i=(i=i+Math.imul(R,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Oe=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(N,pe)|0))<<13)|0;u=((o=o+Math.imul(N,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,fe),i=(i=Math.imul(L,ue))+Math.imul(F,fe)|0,o=Math.imul(F,ue),n=n+Math.imul(B,he)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var Re=(u+(n=n+Math.imul(R,pe)|0)|0)+((8191&(i=(i=i+Math.imul(R,be)|0)+Math.imul(U,pe)|0))<<13)|0;u=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(F,he)|0,o=Math.imul(F,de);var Ue=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,be)|0)+Math.imul(T,pe)|0))<<13)|0;u=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ue>>>26)|0,Ue&=67108863;var Ce=(u+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(F,pe)|0))<<13)|0;return u=((o=Math.imul(F,be))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,f[0]=me,f[1]=ve,f[2]=ye,f[3]=ge,f[4]=we,f[5]=_e,f[6]=ke,f[7]=Ae,f[8]=Se,f[9]=Ee,f[10]=Me,f[11]=xe,f[12]=Ie,f[13]=Pe,f[14]=Ne,f[15]=Oe,f[16]=Re,f[17]=Ue,f[18]=Ce,0!==u&&(f[19]=u,r.length++),r};function b(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(p=l),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):r<63?l(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,e,t):b(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*t;a>=26,t+=n/67108864|0,t+=o>>>26,this.words[r]=67108863&o}return 0!==t&&(this.words[r]=t,this.length++),this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>i}return t}(e);if(0===t.length)return new a(1);for(var r=this,n=0;n=0);var t,r=e%26,n=(e-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0),n=t?(t-t%26)/26:0;var o=e%26,a=Math.min((e-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,u=0;u=0&&(0!==c||u>=n);u--){var h=0|this.words[u];this.words[u]=c<<26-o|h>>>o,c=h&s}return f&&0!==c&&(f.words[f.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(f/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,f=n.length-i.length;if("mod"!==t){(s=new a(null)).length=f+1,s.words=new Array(s.length);for(var u=0;u=0;h--){var d=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(i,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=d)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(n=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var n,o,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){i(e<=67108863);for(var t=(1<<26)%e,r=0,n=this.length-1;n>=0;n--)r=(t*r+(0|this.words[n]))%e;return r},a.prototype.idivn=function(e){i(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*t;this.words[r]=n/e|0,t=n%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new a(1),o=new a(0),s=new a(0),f=new a(1),u=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++u;for(var c=r.clone(),h=t.clone();!t.isZero();){for(var d=0,l=1;0==(t.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(c),o.isub(h)),n.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||f.isOdd())&&(s.iadd(c),f.isub(h)),s.iushrn(1),f.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(f)):(r.isub(t),s.isub(n),f.isub(o))}return{a:s,b:f,gcd:r.iushln(u)}},a.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new a(1),s=new a(0),f=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(t.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(t.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(f),o.iushrn(1);for(var h=0,d=1;0==(r.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(f),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(n=0===t.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(e),n},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:ne.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){ni&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new A(e)},a.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function y(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},y.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):r.strip(),r},y.prototype.split=function(e,t){e.iushrn(this.n,0,t)},y.prototype.imulK=function(e){return e.imul(this.k)},o(g,y),g.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n>>22,i=o}i>>>=22,e.words[n-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},g.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new g;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new k}return v[e]=t,t},A.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new a(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),f=s.redNeg(),u=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,u).cmp(f);)c.redIAdd(f);for(var h=this.pow(c,n),d=this.pow(e,n.addn(1).iushrn(1)),l=this.pow(e,n),p=o;0!==l.cmp(s);){for(var b=l,m=0;0!==b.cmp(s);m++)b=b.redSqr();i(m=0;n--){for(var u=t.words[n],c=f-1;c>=0;c--){var h=u>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}f=26}return i},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new S(e)},o(S,A),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e)}).call(this,r(16)(e))},function(e,t,r){"use strict";var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,r){"use strict";var n=r(223);e.exports=function(e){return"string"!=typeof e?e:n(e)?e.slice(2):e}},function(e,t,r){"use strict";(function(t){var n=r(11),i=r(4),o=r(225),a=r(227),s=r(76),f=r(228),u=function(e){return i.isBN(e)},c=function(e){return e&&e.constructor&&"BigNumber"===e.constructor.name},h=function(e){try{return o.apply(null,arguments)}catch(t){throw new Error(t+' Given value: "'+e+'"')}},d=function(e){return!!/^(0x)?[0-9a-f]{40}$/i.test(e)&&(!(!/^(0x|0X)?[0-9a-f]{40}$/.test(e)&&!/^(0x|0X)?[0-9A-F]{40}$/.test(e))||l(e))},l=function(e){e=e.replace(/^0x/i,"");for(var t=g(e.toLowerCase()).replace(/^0x/i,""),r=0;r<40;r++)if(parseInt(t[r],16)>7&&e[r].toUpperCase()!==e[r]||parseInt(t[r],16)<=7&&e[r].toLowerCase()!==e[r])return!1;return!0},p=function(e){var t="";e=(e=(e=(e=(e=a.encode(e)).replace(/^(?:\u0000)*/,"")).split("").reverse().join("")).replace(/^(?:\u0000)*/,"")).split("").reverse().join("");for(var r=0;r>>4).toString(16)),t.push((15&e[r]).toString(16));return"0x"+t.join("")},isHex:function(e){return(n.isString(e)||n.isNumber(e))&&/^(-0x|0x)?[0-9a-f]*$/i.test(e)},isHexStrict:v,leftPad:function(e,t,r){var n=/^0x/i.test(e)||"number"==typeof e,i=t-(e=e.toString(16).replace(/^0x/i,"")).length+1>=0?t-e.length+1:0;return(n?"0x":"")+new Array(i).join(r||"0")+e},rightPad:function(e,t,r){var n=/^0x/i.test(e)||"number"==typeof e,i=t-(e=e.toString(16).replace(/^0x/i,"")).length+1>=0?t-e.length+1:0;return(n?"0x":"")+e+new Array(i).join(r||"0")},toTwosComplement:function(e){return"0x"+h(e).toTwos(256).toString(16,64)},sha3:g,sha3Raw:function(e){return null===(e=g(e))?y:e}}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n=r(17),i=r(4),o=function(e){var t="A".charCodeAt(0),r="Z".charCodeAt(0);return(e=(e=e.toUpperCase()).substr(4)+e.substr(0,4)).split("").map((function(e){var n=e.charCodeAt(0);return n>=t&&n<=r?n-t+10:e})).join("")},a=function(e){for(var t,r=e;r.length>2;)t=r.slice(0,9),r=parseInt(t,10)%97+r.slice(t.length);return parseInt(r,10)%97},s=function(e){this._iban=e};s.toAddress=function(e){if(!(e=new s(e)).isDirect())throw new Error("IBAN is indirect and can't be converted");return e.toAddress()},s.toIban=function(e){return s.fromAddress(e).toString()},s.fromAddress=function(e){if(!n.isAddress(e))throw new Error("Provided address is not a valid address: "+e);e=e.replace("0x","").replace("0X","");var t=function(e,t){for(var r=e;r.length<2*t;)r="0"+r;return r}(new i(e,16).toString(36),15);return s.fromBban(t.toUpperCase())},s.fromBban=function(e){var t=("0"+(98-a(o("XE00"+e)))).slice(-2);return new s("XE"+t+e)},s.createIndirect=function(e){return s.fromBban("ETH"+e.institution+e.identifier)},s.isValid=function(e){return new s(e).isValid()},s.prototype.isValid=function(){return/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban)&&1===a(o(this._iban))},s.prototype.isDirect=function(){return 34===this._iban.length||35===this._iban.length},s.prototype.isIndirect=function(){return 20===this._iban.length},s.prototype.checksum=function(){return this._iban.substr(2,2)},s.prototype.institution=function(){return this.isIndirect()?this._iban.substr(7,4):""},s.prototype.client=function(){return this.isIndirect()?this._iban.substr(11):""},s.prototype.toAddress=function(){if(this.isDirect()){var e=this._iban.substr(4),t=new i(e,36);return n.toChecksumAddress(t.toString(16,20))}return""},s.prototype.toString=function(){return this._iban},e.exports=s},function(e,t,r){"use strict";var n={messageId:0,toPayload:function(e,t){if(!e)throw new Error('JSONRPC method should be specified for params: "'+JSON.stringify(t)+'"!');return n.messageId++,{jsonrpc:"2.0",id:n.messageId,method:e,params:t||[]}},isValidResponse:function(e){return Array.isArray(e)?e.every(t):t(e);function t(e){return!(!e||e.error||"2.0"!==e.jsonrpc||"number"!=typeof e.id&&"string"!=typeof e.id||void 0===e.result)}},toBatchPayload:function(e){return e.map((function(e){return n.toPayload(e.method,e.params)}))}};e.exports=n},function(e,t,r){"use strict";(function(e,n){var i,o=r(0)(r(1));!function(a){var s="object"==(0,o.default)(t)&&t&&!t.nodeType&&t,f="object"==(0,o.default)(e)&&e&&!e.nodeType&&e,u="object"==(void 0===n?"undefined":(0,o.default)(n))&&n;u.global!==u&&u.window!==u&&u.self!==u||(a=u);var c,h,d=2147483647,l=/^xn--/,p=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,m={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},v=Math.floor,y=String.fromCharCode;function g(e){throw new RangeError(m[e])}function w(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function _(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+w((e=e.replace(b,".")).split("."),t).join(".")}function k(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(t+=y((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=y(e)})).join("")}function S(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function E(e,t,r){var n=0;for(e=r?v(e/700):e>>1,e+=v(e/t);e>455;n+=36)e=v(e/35);return v(n+36*e/(e+38))}function M(e){var t,r,n,i,o,a,s,f,u,c,h,l=[],p=e.length,b=0,m=128,y=72;for((r=e.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&g("not-basic"),l.push(e.charCodeAt(n));for(i=r>0?r+1:0;i=p&&g("invalid-input"),((f=(h=e.charCodeAt(i++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||f>v((d-b)/a))&&g("overflow"),b+=f*a,!(f<(u=s<=y?1:s>=y+26?26:s-y));s+=36)a>v(d/(c=36-u))&&g("overflow"),a*=c;y=E(b-o,t=l.length+1,0==o),v(b/t)>d-m&&g("overflow"),m+=v(b/t),b%=t,l.splice(b++,0,m)}return A(l)}function x(e){var t,r,n,i,o,a,s,f,u,c,h,l,p,b,m,w=[];for(l=(e=k(e)).length,t=128,r=0,o=72,a=0;a=t&&hv((d-r)/(p=n+1))&&g("overflow"),r+=(s-t)*p,t=s,a=0;ad&&g("overflow"),h==t){for(f=r,u=36;!(f<(c=u<=o?1:u>=o+26?26:u-o));u+=36)m=f-c,b=36-c,w.push(y(S(c+m%b,0))),f=v(m/b);w.push(y(S(f,0))),o=E(r,p,n==i),r=0,++n}++r,++t}return w.join("")}if(c={version:"1.4.1",ucs2:{decode:k,encode:A},decode:M,encode:x,toASCII:function(e){return _(e,(function(e){return p.test(e)?"xn--"+x(e):e}))},toUnicode:function(e){return _(e,(function(e){return l.test(e)?M(e.slice(4).toLowerCase()):e}))}},"object"==(0,o.default)(r(77))&&r(77))void 0===(i=function(){return c}.call(t,r,t,e))||(e.exports=i);else if(s&&f)if(e.exports==s)f.exports=c;else for(h in c)c.hasOwnProperty(h)&&(s[h]=c[h]);else a.punycode=c}(void 0)}).call(this,r(16)(e),r(8))},function(e,t,r){"use strict";(function(e){t.fetch=s(e.fetch)&&s(e.ReadableStream),t.writableStream=s(e.WritableStream),t.abortController=s(e.AbortController),t.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),t.blobConstructor=!0}catch(e){}var r;function n(){if(void 0!==r)return r;if(e.XMLHttpRequest){r=new e.XMLHttpRequest;try{r.open("GET",e.XDomainRequest?"/":"https://example.com")}catch(e){r=null}}else r=null;return r}function i(e){var t=n();if(!t)return!1;try{return t.responseType=e,t.responseType===e}catch(e){}return!1}var o=void 0!==e.ArrayBuffer,a=o&&s(e.ArrayBuffer.prototype.slice);function s(e){return"function"==typeof e}t.arraybuffer=t.fetch||o&&i("arraybuffer"),t.msstream=!t.fetch&&a&&i("ms-stream"),t.mozchunkedarraybuffer=!t.fetch&&o&&i("moz-chunked-arraybuffer"),t.overrideMimeType=t.fetch||!!n()&&s(n().overrideMimeType),t.vbArray=s(e.VBArray),r=null}).call(this,r(8))},function(e,t,r){"use strict";(function(e,n,i){var o=r(115),a=r(3),s=r(42),f=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},u=t.IncomingMessage=function(t,r,a,f){var u=this;if(s.Readable.call(u),u._mode=a,u.headers={},u.rawHeaders=[],u.trailers={},u.rawTrailers=[],u.on("end",(function(){e.nextTick((function(){u.emit("close")}))})),"fetch"===a){if(u._fetchResponse=r,u.url=r.url,u.statusCode=r.status,u.statusMessage=r.statusText,r.headers.forEach((function(e,t){u.headers[t.toLowerCase()]=e,u.rawHeaders.push(t,e)})),o.writableStream){var c=new WritableStream({write:function(e){return new Promise((function(t,r){u._destroyed?r():u.push(new i(e))?t():u._resumeFetch=t}))},close:function(){n.clearTimeout(f),u._destroyed||u.push(null)},abort:function(e){u._destroyed||u.emit("error",e)}});try{return void r.body.pipeTo(c).catch((function(e){n.clearTimeout(f),u._destroyed||u.emit("error",e)}))}catch(e){}}var h=r.body.getReader();!function e(){h.read().then((function(t){if(!u._destroyed){if(t.done)return n.clearTimeout(f),void u.push(null);u.push(new i(t.value)),e()}})).catch((function(e){n.clearTimeout(f),u._destroyed||u.emit("error",e)}))}()}else{if(u._xhr=t,u._pos=0,u.url=t.responseURL,u.statusCode=t.status,u.statusMessage=t.statusText,t.getAllResponseHeaders().split(/\r?\n/).forEach((function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var r=t[1].toLowerCase();"set-cookie"===r?(void 0===u.headers[r]&&(u.headers[r]=[]),u.headers[r].push(t[2])):void 0!==u.headers[r]?u.headers[r]+=", "+t[2]:u.headers[r]=t[2],u.rawHeaders.push(t[1],t[2])}})),u._charset="x-user-defined",!o.overrideMimeType){var d=u.rawHeaders["mime-type"];if(d){var l=d.match(/;\s*charset=([^;])(;|$)/);l&&(u._charset=l[1].toLowerCase())}u._charset||(u._charset="utf-8")}}};a(u,s.Readable),u.prototype._read=function(){var e=this._resumeFetch;e&&(this._resumeFetch=null,e())},u.prototype._onXHRProgress=function(){var e=this,t=e._xhr,r=null;switch(e._mode){case"text:vbarray":if(t.readyState!==f.DONE)break;try{r=new n.VBArray(t.responseBody).toArray()}catch(e){}if(null!==r){e.push(new i(r));break}case"text":try{r=t.responseText}catch(t){e._mode="text:vbarray";break}if(r.length>e._pos){var o=r.substr(e._pos);if("x-user-defined"===e._charset){for(var a=new i(o.length),s=0;se._pos&&(e.push(new i(new Uint8Array(u.result.slice(e._pos)))),e._pos=u.result.byteLength)},u.onload=function(){e.push(null)},u.readAsArrayBuffer(r)}e._xhr.readyState===f.DONE&&"ms-stream"!==e._mode&&e.push(null)}}).call(this,r(9),r(8),r(2).Buffer)},function(e,t,r){"use strict";(function(t,n){var i=r(59);e.exports=g;var o,a=r(109);g.ReadableState=y;r(80).EventEmitter;var s=function(e,t){return e.listeners(t).length},f=r(118),u=r(5).Buffer,c=t.Uint8Array||function(){};var h=r(43);h.inherits=r(3);var d=r(248),l=void 0;l=d&&d.debuglog?d.debuglog("stream"):function(){};var p,b=r(249),m=r(119);h.inherits(g,f);var v=["error","close","destroy","pause","resume"];function y(e,t){e=e||{};var n=t instanceof(o=o||r(33));this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new b,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=r(60).StringDecoder),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function g(e){if(o=o||r(33),!(this instanceof g))return new g(e);this._readableState=new y(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),f.call(this)}function w(e,t,r,n,i){var o,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,A(e)}(e,a)):(i||(o=function(e,t){var r;n=t,u.isBuffer(n)||n instanceof c||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r}(a,t)),o?e.emit("error",o):a.objectMode||t&&t.length>0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),n?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):_(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!r?(t=a.decoder.write(t),a.objectMode||0!==t.length?_(e,a,t,!1):E(e,a)):_(e,a,t,!1))):n||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function A(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(l("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(S,e):S(e))}function S(e){l("emit readable"),e.emit("readable"),P(e)}function E(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(M,e,t))}function M(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;eo.length?o.length:e;if(a===o.length?i+=o:i+=o.slice(0,e),0===(e-=a)){a===o.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=u.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var o=n.data,a=e>o.length?o.length:e;if(o.copy(r,r.length-e,0,a),0===(e-=a)){a===o.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r);var r}function O(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(R,t,e))}function R(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function U(e,t){for(var r=0,n=e.length;r=t.highWaterMark||t.ended))return l("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):A(this),null;if(0===(e=k(e,t))&&t.ended)return 0===t.length&&O(this),null;var n,i=t.needReadable;return l("need readable",i),(0===t.length||t.length-e0?N(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&O(this)),null!==n&&this.emit("data",n),n},g.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},g.prototype.pipe=function(e,t){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=e;break;case 1:o.pipes=[o.pipes,e];break;default:o.pipes.push(e)}o.pipesCount+=1,l("pipe count=%d opts=%j",o.pipesCount,t);var f=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?c:g;function u(t,n){l("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,l("cleanup"),e.removeListener("close",v),e.removeListener("finish",y),e.removeListener("drain",h),e.removeListener("error",m),e.removeListener("unpipe",u),r.removeListener("end",c),r.removeListener("end",g),r.removeListener("data",b),d=!0,!o.awaitDrain||e._writableState&&!e._writableState.needDrain||h())}function c(){l("onend"),e.end()}o.endEmitted?i.nextTick(f):r.once("end",f),e.on("unpipe",u);var h=function(e){return function(){var t=e._readableState;l("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(r);e.on("drain",h);var d=!1;var p=!1;function b(t){l("ondata"),p=!1,!1!==e.write(t)||p||((1===o.pipesCount&&o.pipes===e||o.pipesCount>1&&-1!==U(o.pipes,e))&&!d&&(l("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,p=!0),r.pause())}function m(t){l("onerror",t),g(),e.removeListener("error",m),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",y),g()}function y(){l("onfinish"),e.removeListener("close",v),g()}function g(){l("unpipe"),r.unpipe(e)}return r.on("data",b),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",m),e.once("close",v),e.once("finish",y),e.emit("pipe",r),o.flowing||(l("pipe resume"),r.resume()),e},g.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r)),this;if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},r(251),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||void 0,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||void 0}).call(this,r(8))},function(e,t,r){"use strict";e.exports=a;var n=r(33),i=r(43);function o(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length=9007199254740991||t<=-9007199254740991)&&m("overflow","BigNumber.from",t),e.from(String(t))):"bigint"==typeof t?e.from(t.toString()):(0,s.isBytes)(t)?e.from((0,s.hexlify)(t)):t._hex&&(0,s.isHexString)(t._hex)?e.from(t._hex):t.toHexString&&"string"==typeof(t=t.toHexString())?e.from(t):c.throwArgumentError("invalid BigNumber value","value",t)}},{key:"isBigNumber",value:function(e){return!(!e||!e._isBigNumber)}}]),e}();function l(e){if("string"!=typeof e)return l(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&c.throwArgumentError("invalid hex","value",e),"0x00"===(e=l(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function p(e){return d.from(l(e))}function b(e){var t=d.from(e).toHexString();return"-"===t[0]?new a.BN("-"+t.substring(3),16):new a.BN(t.substring(2),16)}function m(e,t,r){var n={fault:e,operation:t};return null!=r&&(n.value=r),c.throwError(e,f.Logger.errors.NUMERIC_FAULT,n)}t.BigNumber=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="bignumber/5.0.5"},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.keccak256=function(e){return"0x"+i.default.keccak_256((0,o.arrayify)(e))};var i=n(r(273)),o=r(35)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.encode=function(e){return(0,n.hexlify)(function e(t){if(Array.isArray(t)){var r=[];if(t.forEach((function(t){r=r.concat(e(t))})),r.length<=55)return r.unshift(192+r.length),r;var i=s(r.length);return i.unshift(247+i.length),i.concat(r)}(0,n.isBytesLike)(t)||a.throwArgumentError("RLP object must be BytesLike","object",t);var o=Array.prototype.slice.call((0,n.arrayify)(t));if(1===o.length&&o[0]<=127)return o;if(o.length<=55)return o.unshift(128+o.length),o;var f=s(o.length);return f.unshift(183+f.length),f.concat(o)}(e))},t.decode=function(e){var t=(0,n.arrayify)(e),r=c(t,0);r.consumed!==t.length&&a.throwArgumentError("invalid rlp data","data",e);return r.result};var n=r(35),i=r(29),o=r(274),a=new i.Logger(o.version);function s(e){for(var t=[];e;)t.unshift(255&e),e>>=8;return t}function f(e,t,r){for(var n=0,i=0;it+1+n&&a.throwError("child data too short",i.Logger.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:o}}function c(e,t){if(0===e.length&&a.throwError("data too short",i.Logger.errors.BUFFER_OVERRUN,{}),e[t]>=248){var r=e[t]-247;t+1+r>e.length&&a.throwError("data short segment too short",i.Logger.errors.BUFFER_OVERRUN,{});var o=f(e,t+1,r);return t+1+r+o>e.length&&a.throwError("data long segment too short",i.Logger.errors.BUFFER_OVERRUN,{}),u(e,t,t+1+r,r+o)}if(e[t]>=192){var s=e[t]-192;return t+1+s>e.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{}),u(e,t,t+1,s)}if(e[t]>=184){var c=e[t]-183;t+1+c>e.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{});var h=f(e,t+1,c);return t+1+c+h>e.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{}),{consumed:1+c+h,result:(0,n.hexlify)(e.slice(t+1+c,t+1+c+h))}}if(e[t]>=128){var d=e[t]-128;return t+1+d>e.length&&a.throwError("data too short",i.Logger.errors.BUFFER_OVERRUN,{}),{consumed:1+d,result:(0,n.hexlify)(e.slice(t+1,t+1+d))}}return{consumed:1,result:(0,n.hexlify)(e[t])}}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.defineReadOnly=h,t.getStatic=function(e,t){for(var r=0;r<32;r++){if(e[t])return e[t];if(!e.prototype||"object"!==(0,a.default)(e.prototype))break;e=Object.getPrototypeOf(e.prototype).constructor}return null},t.resolveProperties=function(e){return u(this,void 0,void 0,o.default.mark((function t(){var r,n;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=Object.keys(e).map((function(t){var r=e[t];return Promise.resolve(r).then((function(e){return{key:t,value:e}}))})),t.next=3,Promise.all(r);case 3:return n=t.sent,t.abrupt("return",n.reduce((function(e,t){return e[t.key]=t.value,e}),{}));case 5:case"end":return t.stop()}}),t)})))},t.checkProperties=function(e,t){e&&"object"===(0,a.default)(e)||c.throwArgumentError("invalid object","object",e);Object.keys(e).forEach((function(r){t[r]||c.throwArgumentError("invalid object key - "+r,"transaction:"+r,e)}))},t.shallowCopy=function(e){var t={};for(var r in e)t[r]=e[r];return t},t.deepCopy=p,t.Description=void 0;var i=n(r(6)),o=n(r(44)),a=n(r(1)),s=r(29),f=r(277),u=function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{f(n.next(e))}catch(e){o(e)}}function s(e){try{f(n.throw(e))}catch(e){o(e)}}function f(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}f((n=n.apply(e,t||[])).next())}))},c=new s.Logger(f.version);function h(e,t,r){Object.defineProperty(e,t,{enumerable:!0,value:r,writable:!1})}var d={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function l(e){if(function e(t){if(null==t||d[(0,a.default)(t)])return!0;if(Array.isArray(t)||"object"===(0,a.default)(t)){if(!Object.isFrozen(t))return!1;for(var r=Object.keys(t),n=0;n>>3},t.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},function(e,t,r){"use strict";var n=r(27),i=r(47),o=r(130),a=r(18),s=n.sum32,f=n.sum32_4,u=n.sum32_5,c=o.ch32,h=o.maj32,d=o.s0_256,l=o.s1_256,p=o.g0_256,b=o.g1_256,m=i.BlockHash,v=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function y(){if(!(this instanceof y))return new y;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=v,this.W=new Array(64)}n.inherits(y,m),e.exports=y,y.blockSize=512,y.outSize=256,y.hmacStrength=192,y.padLength=64,y.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}e.exports=a,a.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},a.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length0&&e.topics.length!==n+1&&(t={anonymous:!0,inputs:[]})}var i=t.anonymous?e.topics:e.topics.slice(1);return r.returnValues=h.decodeLog(t.inputs,e.data,i),delete r.returnValues.__length__,r.event=t.name,r.signature=t.anonymous||!e.topics[0]?null:e.topics[0],r.raw={data:r.data,topics:r.topics},delete r.data,delete r.topics,r},d.prototype._encodeMethodABI=function(){var e=this._method.signature,t=this.arguments||[],r=!1,i=this._parent.options.jsonInterface.filter((function(t){return"constructor"===e&&t.type===e||(t.signature===e||t.signature===e.replace("0x","")||t.name===e)&&"function"===t.type})).map((function(e){var i=n.isArray(e.inputs)?e.inputs.length:0;if(i!==t.length)throw new Error("The number of arguments is not matching the methods required number. You need to pass "+i+" arguments.");return"function"===e.type&&(r=e.signature),n.isArray(e.inputs)?e.inputs:[]})).map((function(e){return h.encodeParameters(e,t).replace("0x","")}))[0]||"";if("constructor"===e){if(!this._deployData)throw new Error("The contract has no contract data option set. This is necessary to append the constructor parameters.");return this._deployData.startsWith("0x")||(this._deployData="0x"+this._deployData),this._deployData+i}var o=r?r+i:i;if(!o)throw new Error("Couldn't find a matching contract method named \""+this._method.name+'".');return o},d.prototype._decodeMethodReturn=function(e,t){if(!t)return null;t=t.length>=2?t.slice(2):t;var r=h.decodeParameters(e,t);return 1===r.__length__?r[0]:(delete r.__length__,r)},d.prototype.deploy=function(e,t){if((e=e||{}).arguments=e.arguments||[],!(e=this._getOrSetDefaultOptions(e)).data){if("function"==typeof t)return t(u.ContractMissingDeployDataError());throw u.ContractMissingDeployDataError()}var r=n.find(this.options.jsonInterface,(function(e){return"constructor"===e.type}))||{};return r.signature="constructor",this._createTxObject.apply({method:r,parent:this,deployData:e.data,_ethAccounts:this.constructor._ethAccounts},e.arguments)},d.prototype._generateEventOptions=function(){var e=Array.prototype.slice.call(arguments),t=this._getCallback(e),r=n.isObject(e[e.length-1])?e.pop():{},i=n.isString(e[0])?e[0]:"allevents",o="allevents"===i.toLowerCase()?{name:"ALLEVENTS",jsonInterface:this.options.jsonInterface}:this.options.jsonInterface.find((function(e){return"event"===e.type&&(e.name===i||e.signature==="0x"+i.replace("0x",""))}));if(!o)throw u.ContractEventDoesNotExistError(i);if(!a.isAddress(this.options.address))throw u.ContractNoAddressDefinedError();return{params:this._encodeEventABI(o,r),event:o,callback:t}},d.prototype.clone=function(){return new this.constructor(this.options.jsonInterface,this.options.address,this.options)},d.prototype.once=function(e,t,r){var i=Array.prototype.slice.call(arguments);if(!(r=this._getCallback(i)))throw u.ContractOnceRequiresCallbackError();t&&delete t.fromBlock,this._on(e,t,(function(e,t,i){i.unsubscribe(),n.isFunction(r)&&r(e,t,i)}))},d.prototype._on=function(){var e=this._generateEventOptions.apply(this,arguments);e.params&&e.params.toBlock&&(delete e.params.toBlock,console.warn("Invalid option: toBlock. Use getPastEvents for specific range.")),this._checkListener("newListener",e.event.name),this._checkListener("removeListener",e.event.name);var t=new s({subscription:{params:1,inputFormatter:[f.inputLogFormatter],outputFormatter:this._decodeEventABI.bind(e.event),subscriptionHandler:function(e){e.removed?this.emit("changed",e):this.emit("data",e),n.isFunction(this.callback)&&this.callback(null,e,this)}},type:"eth",requestManager:this._requestManager});return t.subscribe("logs",e.params,e.callback||function(){}),t},d.prototype.getPastEvents=function(){var e=this._generateEventOptions.apply(this,arguments),t=new o({name:"getPastLogs",call:"eth_getLogs",params:1,inputFormatter:[f.inputLogFormatter],outputFormatter:this._decodeEventABI.bind(e.event)});t.setRequestManager(this._requestManager);var r=t.buildCall();return t=null,r(e.params,e.callback)},d.prototype._createTxObject=function(){var e=Array.prototype.slice.call(arguments),t={};if("function"===this.method.type&&(t.call=this.parent._executeMethod.bind(t,"call"),t.call.request=this.parent._executeMethod.bind(t,"call",!0)),t.send=this.parent._executeMethod.bind(t,"send"),t.send.request=this.parent._executeMethod.bind(t,"send",!0),t.encodeABI=this.parent._encodeMethodABI.bind(t),t.estimateGas=this.parent._executeMethod.bind(t,"estimate"),e&&this.method.inputs&&e.length!==this.method.inputs.length){if(this.nextMethod)return this.nextMethod.apply(null,e);throw u.InvalidNumberOfParams(e.length,this.method.inputs.length,this.method.name)}return t.arguments=e||[],t._method=this.method,t._parent=this.parent,t._ethAccounts=this.parent.constructor._ethAccounts||this._ethAccounts,this.deployData&&(t._deployData=this.deployData),t},d.prototype._processExecuteArguments=function(e,t){var r={};if(r.type=e.shift(),r.callback=this._parent._getCallback(e),"call"===r.type&&!0!==e[e.length-1]&&(n.isString(e[e.length-1])||isFinite(e[e.length-1]))&&(r.defaultBlock=e.pop()),r.options=n.isObject(e[e.length-1])?e.pop():{},r.generateRequest=!0===e[e.length-1]&&e.pop(),r.options=this._parent._getOrSetDefaultOptions(r.options),r.options.data=this.encodeABI(),!this._deployData&&!a.isAddress(this._parent.options.address))throw u.ContractNoAddressDefinedError();return this._deployData||(r.options.to=this._parent.options.address),r.options.data?r:a._fireError(new Error("Couldn't find a matching contract method, or the number of parameters is wrong."),t.eventEmitter,t.reject,r.callback)},d.prototype._executeMethod=function(){var e=this,t=this._parent._processExecuteArguments.call(this,Array.prototype.slice.call(arguments),r),r=c("send"!==t.type),i=e.constructor._ethAccounts||e._ethAccounts;if(t.generateRequest){var s={params:[f.inputCallFormatter.call(this._parent,t.options)],callback:t.callback};return"call"===t.type?(s.params.push(f.inputDefaultBlockNumberFormatter.call(this._parent,t.defaultBlock)),s.method="eth_call",s.format=this._parent._decodeMethodReturn.bind(null,this._method.outputs)):s.method="eth_sendTransaction",s}switch(t.type){case"estimate":var d=new o({name:"estimateGas",call:"eth_estimateGas",params:1,inputFormatter:[f.inputCallFormatter],outputFormatter:a.hexToNumber,requestManager:e._parent._requestManager,accounts:i,defaultAccount:e._parent.defaultAccount,defaultBlock:e._parent.defaultBlock}).createFunction();return d(t.options,t.callback);case"call":var l=new o({name:"call",call:"eth_call",params:2,inputFormatter:[f.inputCallFormatter,f.inputDefaultBlockNumberFormatter],outputFormatter:function(t){return e._parent._decodeMethodReturn(e._method.outputs,t)},requestManager:e._parent._requestManager,accounts:i,defaultAccount:e._parent.defaultAccount,defaultBlock:e._parent.defaultBlock,handleRevert:e._parent.handleRevert,abiCoder:h}).createFunction();return l(t.options,t.defaultBlock,t.callback);case"send":if(!a.isAddress(t.options.from))return a._fireError(u.ContractNoFromAddressDefinedError(),r.eventEmitter,r.reject,t.callback);if(n.isBoolean(this._method.payable)&&!this._method.payable&&t.options.value&&t.options.value>0)return a._fireError(new Error("Can not send value to non-payable contract method or constructor"),r.eventEmitter,r.reject,t.callback);var p={receiptFormatter:function(t){if(n.isArray(t.logs)){var r=n.map(t.logs,(function(t){return e._parent._decodeEventABI.call({name:"ALLEVENTS",jsonInterface:e._parent.options.jsonInterface},t)}));t.events={};var i=0;r.forEach((function(e){e.event?t.events[e.event]?Array.isArray(t.events[e.event])?t.events[e.event].push(e):t.events[e.event]=[t.events[e.event],e]:t.events[e.event]=e:(t.events[i]=e,i++)})),delete t.logs}return t},contractDeployFormatter:function(t){var r=e._parent.clone();return r.options.address=t.contractAddress,r}},b=new o({name:"sendTransaction",call:"eth_sendTransaction",params:1,inputFormatter:[f.inputTransactionFormatter],requestManager:e._parent._requestManager,accounts:e.constructor._ethAccounts||e._ethAccounts,defaultAccount:e._parent.defaultAccount,defaultBlock:e._parent.defaultBlock,transactionBlockTimeout:e._parent.transactionBlockTimeout,transactionConfirmationBlocks:e._parent.transactionConfirmationBlocks,transactionPollingTimeout:e._parent.transactionPollingTimeout,defaultCommon:e._parent.defaultCommon,defaultChain:e._parent.defaultChain,defaultHardfork:e._parent.defaultHardfork,handleRevert:e._parent.handleRevert,extraFormatters:p,abiCoder:h}).createFunction();return b(t.options,t.callback);default:throw new Error('Method "'+t.type+'" not implemented.')}},e.exports=d},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(2).Buffer,o=r(11),a=r(17),s=r(137).AbiCoder,f=r(137).ParamType,u=new s((function(e,t){return!e.match(/^u?int/)||o.isArray(t)||o.isObject(t)&&"BN"===t.constructor.name?t:t.toString()}));function c(){}var h=function(){};h.prototype.encodeFunctionSignature=function(e){return o.isObject(e)&&(e=a._jsonInterfaceMethodToString(e)),a.sha3(e).slice(0,10)},h.prototype.encodeEventSignature=function(e){return o.isObject(e)&&(e=a._jsonInterfaceMethodToString(e)),a.sha3(e)},h.prototype.encodeParameter=function(e,t){return this.encodeParameters([e],[t])},h.prototype.encodeParameters=function(e,t){var r=this;return e=r.mapTypes(e),t=t.map((function(t,i){var o=e[i];if("object"===(0,n.default)(o)&&o.type&&(o=o.type),t=r.formatParam(o,t),"string"==typeof o&&o.includes("tuple")){!function e(t,n){if("array"===t.name)return n.map((function(r){return e(u._getCoder(f.from(t.type.replace("[]",""))),r)}));t.coders.forEach((function(t,i){"tuple"===t.name?e(t,n[i]):n[i]=r.formatParam(t.name,n[i])}))}(u._getCoder(f.from(o)),t)}return t})),u.encode(e,t)},h.prototype.mapTypes=function(e){var t=this,r=[];return e.forEach((function(e){if("object"===(0,n.default)(e)&&"function"===e.type&&(e.type="bytes24"),t.isSimplifiedStructFormat(e)){var i=Object.keys(e)[0];r.push(Object.assign(t.mapStructNameAndType(i),{components:t.mapStructToCoderFormat(e[i])}))}else r.push(e)})),r},h.prototype.isSimplifiedStructFormat=function(e){return"object"===(0,n.default)(e)&&void 0===e.components&&void 0===e.name},h.prototype.mapStructNameAndType=function(e){var t="tuple";return e.indexOf("[]")>-1&&(t="tuple[]",e=e.slice(0,-2)),{type:t,name:e}},h.prototype.mapStructToCoderFormat=function(e){var t=this,r=[];return Object.keys(e).forEach((function(i){"object"!==(0,n.default)(e[i])?r.push({name:i,type:e[i]}):r.push(Object.assign(t.mapStructNameAndType(i),{components:t.mapStructToCoderFormat(e[i])}))})),r},h.prototype.formatParam=function(e,t){var r=this,n=new RegExp(/^bytes([0-9]*)$/),o=new RegExp(/^bytes([0-9]*)\[\]$/),s=new RegExp(/^(u?int)([0-9]*)$/),f=new RegExp(/^(u?int)([0-9]*)\[\]$/);if(a.isBN(t)||a.isBigNumber(t))return t.toString(10);if(e.match(o)||e.match(f))return t.map((function(t){return r.formatParam(e.replace("[]",""),t)}));var u=e.match(s);if(u){var c=parseInt(u[2]||"256");c/80&&(!t||"0x"===t||"0X"===t))throw new Error("Returned values aren't valid, did it run Out of Gas? You might also see this error if you are not using the correct ABI for the contract you are retrieving data from, requesting data from a block number that does not exist, or querying a node which is not fully synced.");var n=u.decode(this.mapTypes(e),"0x"+t.replace(/0x/i,""),r),i=new c;return i.__length__=0,e.forEach((function(e,t){var r=n[i.__length__];r="0x"===r?null:r,i[t]=r,o.isObject(e)&&e.name&&(i[e.name]=r),i.__length__++})),i},h.prototype.decodeLog=function(e,t,r){var n=this;r=o.isArray(r)?r:[r],t=t||"";var i=[],a=[],s=0;e.forEach((function(e,t){e.indexed?(a[t]=["bool","int","uint","address","fixed","ufixed"].find((function(t){return-1!==e.type.indexOf(t)}))?n.decodeParameter(e.type,r[s]):r[s],s++):i[t]=e}));var f=t,u=f?this.decodeParametersWith(i,f,!0):[],h=new c;return h.__length__=0,e.forEach((function(e,t){h[t]="string"===e.type?"":null,void 0!==u[t]&&(h[t]=u[t]),void 0!==a[t]&&(h[t]=a[t]),e.name&&(h[e.name]=h[t]),h.__length__++})),h};var d=new h;e.exports=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ConstructorFragment",{enumerable:!0,get:function(){return n.ConstructorFragment}}),Object.defineProperty(t,"EventFragment",{enumerable:!0,get:function(){return n.EventFragment}}),Object.defineProperty(t,"FormatTypes",{enumerable:!0,get:function(){return n.FormatTypes}}),Object.defineProperty(t,"Fragment",{enumerable:!0,get:function(){return n.Fragment}}),Object.defineProperty(t,"FunctionFragment",{enumerable:!0,get:function(){return n.FunctionFragment}}),Object.defineProperty(t,"ParamType",{enumerable:!0,get:function(){return n.ParamType}}),Object.defineProperty(t,"AbiCoder",{enumerable:!0,get:function(){return i.AbiCoder}}),Object.defineProperty(t,"defaultAbiCoder",{enumerable:!0,get:function(){return i.defaultAbiCoder}}),Object.defineProperty(t,"checkResultErrors",{enumerable:!0,get:function(){return o.checkResultErrors}}),Object.defineProperty(t,"Indexed",{enumerable:!0,get:function(){return o.Indexed}}),Object.defineProperty(t,"Interface",{enumerable:!0,get:function(){return o.Interface}}),Object.defineProperty(t,"LogDescription",{enumerable:!0,get:function(){return o.LogDescription}}),Object.defineProperty(t,"TransactionDescription",{enumerable:!0,get:function(){return o.TransactionDescription}});var n=r(87),i=r(142),o=r(330)},function(e,t,r){"use strict";function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t,r){"use strict";e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.isBigNumberish=function(e){return null!=e&&(d.isBigNumber(e)||"number"==typeof e&&e%1==0||"string"==typeof e&&!!e.match(/^-?[0-9]+$/)||(0,s.isHexString)(e)||"bigint"==typeof e||(0,s.isBytes)(e))},t.BigNumber=void 0;var i=n(r(6)),o=n(r(7)),a=r(4),s=r(24),f=r(25),u=r(141),c=new f.Logger(u.version),h={};var d=function(){function e(t,r){(0,i.default)(this,e),c.checkNew(this instanceof e?this.constructor:void 0,e),t!==h&&c.throwError("cannot call constructor directly; use BigNumber.from",f.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=r,this._isBigNumber=!0,Object.freeze(this)}return(0,o.default)(e,[{key:"fromTwos",value:function(e){return p(b(this).fromTwos(e))}},{key:"toTwos",value:function(e){return p(b(this).toTwos(e))}},{key:"abs",value:function(){return"-"===this._hex[0]?e.from(this._hex.substring(1)):this}},{key:"add",value:function(e){return p(b(this).add(b(e)))}},{key:"sub",value:function(e){return p(b(this).sub(b(e)))}},{key:"div",value:function(t){return e.from(t).isZero()&&m("division by zero","div"),p(b(this).div(b(t)))}},{key:"mul",value:function(e){return p(b(this).mul(b(e)))}},{key:"mod",value:function(e){var t=b(e);return t.isNeg()&&m("cannot modulo negative values","mod"),p(b(this).umod(t))}},{key:"pow",value:function(e){var t=b(e);return t.isNeg()&&m("cannot raise to negative values","pow"),p(b(this).pow(t))}},{key:"and",value:function(e){var t=b(e);return(this.isNegative()||t.isNeg())&&m("cannot 'and' negative values","and"),p(b(this).and(t))}},{key:"or",value:function(e){var t=b(e);return(this.isNegative()||t.isNeg())&&m("cannot 'or' negative values","or"),p(b(this).or(t))}},{key:"xor",value:function(e){var t=b(e);return(this.isNegative()||t.isNeg())&&m("cannot 'xor' negative values","xor"),p(b(this).xor(t))}},{key:"mask",value:function(e){return(this.isNegative()||e<0)&&m("cannot mask negative values","mask"),p(b(this).maskn(e))}},{key:"shl",value:function(e){return(this.isNegative()||e<0)&&m("cannot shift negative values","shl"),p(b(this).shln(e))}},{key:"shr",value:function(e){return(this.isNegative()||e<0)&&m("cannot shift negative values","shr"),p(b(this).shrn(e))}},{key:"eq",value:function(e){return b(this).eq(b(e))}},{key:"lt",value:function(e){return b(this).lt(b(e))}},{key:"lte",value:function(e){return b(this).lte(b(e))}},{key:"gt",value:function(e){return b(this).gt(b(e))}},{key:"gte",value:function(e){return b(this).gte(b(e))}},{key:"isNegative",value:function(){return"-"===this._hex[0]}},{key:"isZero",value:function(){return b(this).isZero()}},{key:"toNumber",value:function(){try{return b(this).toNumber()}catch(e){m("overflow","toNumber",this.toString())}return null}},{key:"toString",value:function(){return 0!==arguments.length&&c.throwError("bigNumber.toString does not accept parameters",f.Logger.errors.UNEXPECTED_ARGUMENT,{}),b(this).toString(10)}},{key:"toHexString",value:function(){return this._hex}},{key:"toJSON",value:function(e){return{type:"BigNumber",hex:this.toHexString()}}}],[{key:"from",value:function(t){if(t instanceof e)return t;if("string"==typeof t)return t.match(/^-?0x[0-9a-f]+$/i)?new e(h,l(t)):t.match(/^-?[0-9]+$/)?new e(h,l(new a.BN(t))):c.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&m("underflow","BigNumber.from",t),(t>=9007199254740991||t<=-9007199254740991)&&m("overflow","BigNumber.from",t),e.from(String(t));var r=t;if("bigint"==typeof r)return e.from(r.toString());if((0,s.isBytes)(r))return e.from((0,s.hexlify)(r));if(r)if(r.toHexString){var n=r.toHexString();if("string"==typeof n)return e.from(n)}else{var i=r._hex;if(null==i&&"BigNumber"===r.type&&(i=r.hex),"string"==typeof i&&((0,s.isHexString)(i)||"-"===i[0]&&(0,s.isHexString)(i.substring(1))))return e.from(i)}return c.throwArgumentError("invalid BigNumber value","value",t)}},{key:"isBigNumber",value:function(e){return!(!e||!e._isBigNumber)}}]),e}();function l(e){if("string"!=typeof e)return l(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&c.throwArgumentError("invalid hex","value",e),"0x00"===(e=l(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function p(e){return d.from(l(e))}function b(e){var t=d.from(e).toHexString();return"-"===t[0]?new a.BN("-"+t.substring(3),16):new a.BN(t.substring(2),16)}function m(e,t,r){var n={fault:e,operation:t};return null!=r&&(n.value=r),c.throwError(e,f.Logger.errors.NUMERIC_FAULT,n)}t.BigNumber=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="bignumber/5.0.8"},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.defaultAbiCoder=t.AbiCoder=void 0;var i=n(r(6)),o=n(r(7)),a=r(24),s=r(65),f=r(25),u=r(48),c=r(26),h=r(308),d=r(145),l=r(314),p=r(146),b=r(316),m=r(317),v=r(318),y=r(320),g=r(329),w=r(87),_=new f.Logger(u.version),k=new RegExp(/^bytes([0-9]*)$/),A=new RegExp(/^(u?int)([0-9]*)$/),S=function(){function e(t){(0,i.default)(this,e),_.checkNew(this instanceof e?this.constructor:void 0,e),(0,s.defineReadOnly)(this,"coerceFunc",t||null)}return(0,o.default)(e,[{key:"_getCoder",value:function(e){var t=this;switch(e.baseType){case"address":return new h.AddressCoder(e.name);case"bool":return new l.BooleanCoder(e.name);case"string":return new y.StringCoder(e.name);case"bytes":return new p.BytesCoder(e.name);case"array":return new d.ArrayCoder(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new g.TupleCoder((e.components||[]).map((function(e){return t._getCoder(e)})),e.name);case"":return new m.NullCoder(e.name)}var r=e.type.match(A);if(r){var n=parseInt(r[2]||"256");return(0===n||n>256||n%8!=0)&&_.throwArgumentError("invalid "+r[1]+" bit length","param",e),new v.NumberCoder(n/8,"int"===r[1],e.name)}if(r=e.type.match(k)){var i=parseInt(r[1]);return(0===i||i>32)&&_.throwArgumentError("invalid bytes length","param",e),new b.FixedBytesCoder(i,e.name)}return _.throwArgumentError("invalid type","type",e.type)}},{key:"_getWordSize",value:function(){return 32}},{key:"_getReader",value:function(e,t){return new c.Reader(e,this._getWordSize(),this.coerceFunc,t)}},{key:"_getWriter",value:function(){return new c.Writer(this._getWordSize())}},{key:"encode",value:function(e,t){var r=this;e.length!==t.length&&_.throwError("types/values length mismatch",f.Logger.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});var n=e.map((function(e){return r._getCoder(w.ParamType.from(e))})),i=new g.TupleCoder(n,"_"),o=this._getWriter();return i.encode(o,t),o.data}},{key:"decode",value:function(e,t,r){var n=this,i=e.map((function(e){return n._getCoder(w.ParamType.from(e))}));return new g.TupleCoder(i,"_").decode(this._getReader((0,a.arrayify)(t),r))}}]),e}();t.AbiCoder=S;var E=new S;t.defaultAbiCoder=E},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getAddress=y,t.isAddress=function(e){try{return y(e),!0}catch(e){}return!1},t.getIcapAddress=function(e){var t=new n.BN(y(e).substring(2),16).toString(36).toUpperCase();for(;t.length<30;)t="0"+t;return"XE"+v("XE00"+t)+t},t.getContractAddress=function(e){var t=null;try{t=y(e.from)}catch(t){c.throwArgumentError("missing from address","transaction",e)}var r=(0,i.stripZeros)((0,i.arrayify)(o.BigNumber.from(e.nonce).toHexString()));return y((0,i.hexDataSlice)((0,a.keccak256)((0,s.encode)([t,r])),12))},t.getCreate2Address=function(e,t,r){32!==(0,i.hexDataLength)(t)&&c.throwArgumentError("salt must be 32 bytes","salt",t);32!==(0,i.hexDataLength)(r)&&c.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",r);return y((0,i.hexDataSlice)((0,a.keccak256)((0,i.concat)(["0xff",y(e),t,r])),12))};var n=r(4),i=r(24),o=r(38),a=r(144),s=r(310),f=r(25),u=r(312),c=new f.Logger(u.version);function h(e){(0,i.isHexString)(e,20)||c.throwArgumentError("invalid address","address",e);for(var t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40),n=0;n<40;n++)r[n]=t[n].charCodeAt(0);for(var o=(0,i.arrayify)((0,a.keccak256)(r)),s=0;s<40;s+=2)o[s>>1]>>4>=8&&(t[s]=t[s].toUpperCase()),(15&o[s>>1])>=8&&(t[s+1]=t[s+1].toUpperCase());return"0x"+t.join("")}for(var d={},l=0;l<10;l++)d[String(l)]=String(l);for(var p=0;p<26;p++)d[String.fromCharCode(65+p)]=String(10+p);var b,m=Math.floor((b=9007199254740991,Math.log10?Math.log10(b):Math.log(b)/Math.LN10));function v(e){for(var t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((function(e){return d[e]})).join("");t.length>=m;){var r=t.substring(0,m);t=parseInt(r,10)%97+t.substring(r.length)}for(var n=String(98-parseInt(t,10)%97);n.length<2;)n="0"+n;return n}function y(e){var t=null;if("string"!=typeof e&&c.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=h(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&c.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==v(e)&&c.throwArgumentError("bad icap checksum","address",e),t=new n.BN(e.substring(4),36).toString(16);t.length<40;)t="0"+t;t=h("0x"+t)}else c.throwArgumentError("invalid address","address",e);return t}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.keccak256=function(e){return"0x"+i.default.keccak_256((0,o.arrayify)(e))};var i=n(r(309)),o=r(24)},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.pack=m,t.unpack=v,t.ArrayCoder=void 0;var i=n(r(6)),o=n(r(7)),a=n(r(19)),s=n(r(20)),f=n(r(15)),u=n(r(1)),c=r(25),h=r(48),d=r(26),l=r(313);function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,f.default)(e);if(t){var i=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var b=new c.Logger(h.version);function m(e,t,r){var n=null;if(Array.isArray(r))n=r;else if(r&&"object"===(0,u.default)(r)){var i={};n=t.map((function(e){var t=e.localName;return t||b.throwError("cannot encode object for signature with missing names",c.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:e,value:r}),i[t]&&b.throwError("cannot encode object for signature with duplicate names",c.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:e,value:r}),i[t]=!0,r[t]}))}else b.throwArgumentError("invalid tuple value","tuple",r);t.length!==n.length&&b.throwArgumentError("types/value length mismatch","tuple",r);var o=new d.Writer(e.wordSize),a=new d.Writer(e.wordSize),s=[];t.forEach((function(e,t){var r=n[t];if(e.dynamic){var i=a.length;e.encode(a,r);var f=o.writeUpdatableValue();s.push((function(e){f(e+i)}))}else e.encode(o,r)})),s.forEach((function(e){e(o.length)}));var f=e.appendWriter(o);return f+=e.appendWriter(a)}function v(e,t){var r=[],n=e.subReader(0);t.forEach((function(t){var i=null;if(t.dynamic){var o=e.readValue(),a=n.subReader(o.toNumber());try{i=t.decode(a)}catch(e){if(e.code===c.Logger.errors.BUFFER_OVERRUN)throw e;(i=e).baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===c.Logger.errors.BUFFER_OVERRUN)throw e;(i=e).baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&r.push(i)}));var i=t.reduce((function(e,t){var r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e}),{});t.forEach((function(e,t){var n=e.localName;if(n&&1===i[n]&&("length"===n&&(n="_length"),null==r[n])){var o=r[t];o instanceof Error?Object.defineProperty(r,n,{get:function(){throw o}}):r[n]=o}}));for(var o=function(e){var t=r[e];t instanceof Error&&Object.defineProperty(r,e,{get:function(){throw t}})},a=0;a=0?n:"")+"]",f=-1===n||e.dynamic;return(a=t.call(this,"array",s,o,f)).coder=e,a.length=n,a}return(0,o.default)(r,[{key:"encode",value:function(e,t){Array.isArray(t)||this._throwError("expected array value",t);var r=this.length;-1===r&&(r=t.length,e.writeValue(t.length)),b.checkArgumentCount(t.length,r,"coder array"+(this.localName?" "+this.localName:""));for(var n=[],i=0;i=9007199254740991||t<=-9007199254740991)&&m("overflow","BigNumber.from",t),e.from(String(t));var r=t;if("bigint"==typeof r)return e.from(r.toString());if((0,s.isBytes)(r))return e.from((0,s.hexlify)(r));if(r)if(r.toHexString){var n=r.toHexString();if("string"==typeof n)return e.from(n)}else{var i=r._hex;if(null==i&&"BigNumber"===r.type&&(i=r.hex),"string"==typeof i&&((0,s.isHexString)(i)||"-"===i[0]&&(0,s.isHexString)(i.substring(1))))return e.from(i)}return c.throwArgumentError("invalid BigNumber value","value",t)}},{key:"isBigNumber",value:function(e){return!(!e||!e._isBigNumber)}}]),e}();function l(e){if("string"!=typeof e)return l(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&c.throwArgumentError("invalid hex","value",e),"0x00"===(e=l(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function p(e){return d.from(l(e))}function b(e){var t=d.from(e).toHexString();return"-"===t[0]?new a.BN("-"+t.substring(3),16):new a.BN(t.substring(2),16)}function m(e,t,r){var n={fault:e,operation:t};return null!=r&&(n.value=r),c.throwError(e,f.Logger.errors.NUMERIC_FAULT,n)}t.BigNumber=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="bignumber/5.0.8"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isBytesLike=f,t.isBytes=u,t.arrayify=c,t.concat=h,t.stripZeros=function(e){var t=c(e);if(0===t.length)return t;var r=0;for(;r=256||r%1)return!1}return!0}function c(e,t){if(t||(t={}),"number"==typeof e){o.checkSafeUint53(e,"invalid arrayify value");for(var r=[];e;)r.unshift(255&e),e=parseInt(String(e/256));return 0===r.length&&r.push(0),s(new Uint8Array(r))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),a(e)&&(e=e.toHexString()),l(e)){var n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0x0"+n.substring(2):"right"===t.hexPad?n+="0":o.throwArgumentError("hex data is odd-length","value",e));for(var i=[],f=0;ft&&o.throwArgumentError("value out of range","value",arguments[0]);var r=new Uint8Array(t);return r.set(e,t-e.length),s(r)}function l(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}function p(e,t){if(t||(t={}),"number"==typeof e){o.checkSafeUint53(e,"invalid hexlify value");for(var r="";e;)r="0123456789abcdef"[15&e]+r,e=Math.floor(e/16);return r.length?(r.length%2&&(r="0"+r),"0x"+r):"0x00"}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),a(e))return e.toHexString();if(l(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":o.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(u(e)){for(var n="0x",i=0;i>4]+"0123456789abcdef"[15&s]}return n}return o.throwArgumentError("invalid hexlify value","value",e)}function b(e){"string"!=typeof e&&(e=p(e)),l(e)||o.throwArgumentError("invalid hex string","value",e),e=e.substring(2);for(var t=0;t2*t+2&&o.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}function v(e){var t={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0};if(f(e)){var r=c(e);65!==r.length&&o.throwArgumentError("invalid signature string; must be 65 bytes","signature",e),t.r=p(r.slice(0,32)),t.s=p(r.slice(32,64)),t.v=r[64],t.v<27&&(0===t.v||1===t.v?t.v+=27:o.throwArgumentError("signature invalid v byte","signature",e)),t.recoveryParam=1-t.v%2,t.recoveryParam&&(r[32]|=128),t._vs=p(r.slice(32,64))}else{if(t.r=e.r,t.s=e.s,t.v=e.v,t.recoveryParam=e.recoveryParam,t._vs=e._vs,null!=t._vs){var n=d(c(t._vs),32);t._vs=p(n);var i=n[0]>=128?1:0;null==t.recoveryParam?t.recoveryParam=i:t.recoveryParam!==i&&o.throwArgumentError("signature recoveryParam mismatch _vs","signature",e),n[0]&=127;var a=p(n);null==t.s?t.s=a:t.s!==a&&o.throwArgumentError("signature v mismatch _vs","signature",e)}null==t.recoveryParam?null==t.v?o.throwArgumentError("signature missing v and recoveryParam","signature",e):t.recoveryParam=1-t.v%2:null==t.v?t.v=27+t.recoveryParam:t.recoveryParam!==1-t.v%2&&o.throwArgumentError("signature recoveryParam mismatch v","signature",e),null!=t.r&&l(t.r)?t.r=m(t.r,32):o.throwArgumentError("signature missing or invalid r","signature",e),null!=t.s&&l(t.s)?t.s=m(t.s,32):o.throwArgumentError("signature missing or invalid s","signature",e);var s=c(t.s);s[0]>=128&&o.throwArgumentError("signature s out of range","signature",e),t.recoveryParam&&(s[0]|=128);var u=p(s);t._vs&&(l(t._vs)||o.throwArgumentError("signature invalid _vs","signature",e),t._vs=m(t._vs,32)),null==t._vs?t._vs=u:t._vs!==u&&o.throwArgumentError("signature _vs mismatch v and s","signature",e)}return t}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=t.ErrorCode=t.LogLevel=void 0;var i=n(r(6)),o=n(r(7)),a=r(332),s=!1,f=!1,u={debug:1,default:2,info:2,warning:3,error:4,off:5},c=u.default,h=null;var d,l,p=function(){try{var e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((function(t){try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(r){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();t.LogLevel=d,function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(d||(t.LogLevel=d={})),t.ErrorCode=l,function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT"}(l||(t.ErrorCode=l={}));var b=function(){function e(t){(0,i.default)(this,e),Object.defineProperty(this,"version",{enumerable:!0,value:t,writable:!1})}return(0,o.default)(e,[{key:"_log",value:function(e,t){var r=e.toLowerCase();null==u[r]&&this.throwArgumentError("invalid log level name","logLevel",e),c>u[r]||console.log.apply(console,t)}},{key:"debug",value:function(){for(var t=arguments.length,r=new Array(t),n=0;n=9007199254740991)&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(r,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}},{key:"checkArgumentCount",value:function(t,r,n){n=n?": "+n:"",tr&&this.throwError("too many arguments"+n,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:r})}},{key:"checkNew",value:function(t,r){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}},{key:"checkAbstract",value:function(t,r){t===r?this.throwError("cannot instantiate abstract class "+JSON.stringify(r.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:r.name})}}],[{key:"globalLogger",value:function(){return h||(h=new e(a.version)),h}},{key:"setCensorship",value:function(t,r){if(!t&&r&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),s){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}f=!!t,s=!!r}},{key:"setLogLevel",value:function(t){var r=u[t.toLowerCase()];null!=r?c=r:e.globalLogger().warn("invalid log level - "+t)}}]),e}();t.Logger=b,b.errors=l,b.levels=d},function(e,t,r){"use strict";(function(e){var n=r(337).keccak_256,i=r(338);function o(e){return e?i.toUnicode(e,{useStd3ASCII:!0,transitional:!1}):e}t.hash=function(t){for(var r="",i=0;i<32;i++)r+="00";if(name=o(t),name){var a=name.split(".");for(i=a.length-1;i>=0;i--){var s=n(a[i]);r=n(new e(r+s,"hex"))}}return"0x"+r},t.normalize=o}).call(this,r(2).Buffer)},function(e,t,r){"use strict";(function(t){var n=r(49);function i(e){return parseInt(e.toString("hex"),16)}function o(e){var r=e.toString(16);return r.length%2==1&&(r="0"+r),t.from(r,"hex")}e.exports={numberToBuffer:o,bufferToNumber:i,varintBufferEncode:function(e){return t.from(n.encode(i(e)))},varintBufferDecode:function(e){return o(n.decode(e))},varintEncode:function(e){return t.from(n.encode(e))}}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n=r(156);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}},function(e,t,r){"use strict";e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&void 0!==arguments[0]?arguments[0]:this.multibaseName;if(this.string&&e===this.multibaseName)return this.string;var t=null;if(0===this.version){if("base58btc"!==e)throw new Error("not supported with CIDv0, to support different bases, please migrate the instance do CIDv1, you can do that through cid.toV1()");t=s.toB58String(this.multihash)}else{if(1!==this.version)throw new Error("unsupported version");t=f.encode(e,this.buffer).toString()}return e===this.multibaseName&&Object.defineProperty(this,"string",{value:t}),t}},{key:Symbol.for("nodejs.util.inspect.custom"),value:function(){return"CID("+this.toString()+")"}},{key:"toString",value:function(e){return this.toBaseEncodedString(e)}},{key:"toJSON",value:function(){return{codec:this.codec,version:this.version,hash:this.multihash}}},{key:"equals",value:function(e){return this.codec===e.codec&&this.version===e.version&&this.multihash.equals(e.multihash)}},{key:"buffer",get:function(){var e=this._buffer;if(!e){if(0===this.version)e=this.multihash;else{if(1!==this.version)throw new Error("unsupported version");e=a.concat([a.from("01","hex"),u.getCodeVarint(this.codec),this.multihash])}Object.defineProperty(this,"_buffer",{value:e})}return e}},{key:"prefix",get:function(){return a.concat([a.from("0".concat(this.version),"hex"),u.getCodeVarint(this.codec),s.prefix(this.multihash)])}}],[{key:"validateCID",value:function(e){var t=h.checkCIDComponents(e);if(t)throw new Error(t)}}]),e}(),{className:"CID",symbolName:"@ipld/js-cid/CID"});d.codecs=c,e.exports=d},function(e,t,r){"use strict";var n=r(5).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r>>0,c=new Uint8Array(a);e[r];){var h=t[e.charCodeAt(r)];if(255===h)return;for(var d=0,l=a-1;(0!==h||d>>0,c[l]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");o=d,r++}if(" "!==e[r]){for(var p=a-o;p!==a&&0===c[p];)p++;var b=n.allocUnsafe(i+(a-p));b.fill(0,0,i);for(var m=i;p!==a;)b[m++]=c[p++];return b}}}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=n.from(t)),!n.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var r=0,i=0,o=0,a=t.length;o!==a&&0===t[o];)o++,r++;for(var u=(a-o)*c+1>>>0,h=new Uint8Array(u);o!==a;){for(var d=t[o],l=0,p=u-1;(0!==d||l>>0,h[p]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");i=l,o++}for(var b=u-i;b!==u&&0===h[b];)b++;for(var m=f.repeat(r);b=this._blockSize;){for(var o=this._blockOffset;o0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},function(e,t,r){"use strict";var n=r(3),i=r(39),o=r(5).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function f(){this.init(),this._w=s,i.call(this,64,56)}function u(e,t,r){return r^e&(t^r)}function c(e,t,r){return e&t|r&(e|t)}function h(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function l(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(f,i),f.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},f.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,f=0|this._e,p=0|this._f,b=0|this._g,m=0|this._h,v=0;v<16;++v)r[v]=e.readInt32BE(4*v);for(;v<64;++v)r[v]=0|(((t=r[v-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[v-7]+l(r[v-15])+r[v-16];for(var y=0;y<64;++y){var g=m+d(f)+u(f,p,b)+a[y]+r[y]|0,w=h(n)+c(n,i,o)|0;m=b,b=p,p=f,f=s+g|0,s=o,o=i,i=n,n=g+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=f+this._e|0,this._f=p+this._f|0,this._g=b+this._g|0,this._h=m+this._h|0},f.prototype._hash=function(){var e=o.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=f},function(e,t,r){"use strict";var n=r(3),i=r(39),o=r(5).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function f(){this.init(),this._w=s,i.call(this,128,112)}function u(e,t,r){return r^e&(t^r)}function c(e,t,r){return e&t|r&(e|t)}function h(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function l(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function b(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function v(e,t){return e>>>0>>0?1:0}n(f,i),f.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},f.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,f=0|this._fh,y=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,A=0|this._dl,S=0|this._el,E=0|this._fl,M=0|this._gl,x=0|this._hl,I=0;I<32;I+=2)t[I]=e.readInt32BE(4*I),t[I+1]=e.readInt32BE(4*I+4);for(;I<160;I+=2){var P=t[I-30],N=t[I-30+1],O=l(P,N),R=p(N,P),U=b(P=t[I-4],N=t[I-4+1]),C=m(N,P),B=t[I-14],T=t[I-14+1],j=t[I-32],L=t[I-32+1],F=R+T|0,D=O+B+v(F,R)|0;D=(D=D+U+v(F=F+C|0,C)|0)+j+v(F=F+L|0,L)|0,t[I]=D,t[I+1]=F}for(var z=0;z<160;z+=2){D=t[z],F=t[z+1];var q=c(r,n,i),H=c(w,_,k),K=h(r,w),V=h(w,r),G=d(s,S),W=d(S,s),$=a[z],Y=a[z+1],Z=u(s,f,y),J=u(S,E,M),X=x+W|0,Q=g+G+v(X,x)|0;Q=(Q=(Q=Q+Z+v(X=X+J|0,J)|0)+$+v(X=X+Y|0,Y)|0)+D+v(X=X+F|0,F)|0;var ee=V+H|0,te=K+q+v(ee,V)|0;g=y,x=M,y=f,M=E,f=s,E=S,s=o+Q+v(S=A+X|0,A)|0,o=i,A=k,i=n,k=_,n=r,_=w,r=Q+te+v(w=X+ee|0,X)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+A|0,this._el=this._el+S|0,this._fl=this._fl+E|0,this._gl=this._gl+M|0,this._hl=this._hl+x|0,this._ah=this._ah+r+v(this._al,w)|0,this._bh=this._bh+n+v(this._bl,_)|0,this._ch=this._ch+i+v(this._cl,k)|0,this._dh=this._dh+o+v(this._dl,A)|0,this._eh=this._eh+s+v(this._el,S)|0,this._fh=this._fh+f+v(this._fl,E)|0,this._gh=this._gh+y+v(this._gl,M)|0,this._hh=this._hh+g+v(this._hl,x)|0},f.prototype._hash=function(){var e=o.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=f},function(e,t,r){"use strict";var n=r(3),i=r(396),o=r(30),a=r(5).Buffer,s=r(165),f=r(92),u=r(93),c=a.alloc(128);function h(e,t){o.call(this,"digest"),"string"==typeof t&&(t=a.from(t));var r="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>r)?t=("rmd160"===e?new f:u(e)).update(t).digest():t.lengthr||o!=o)throw new TypeError("Bad key length")}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";(function(t){var r;t.browser?r="utf-8":r=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";e.exports=r}).call(this,r(9))},function(e,t,r){"use strict";var n=r(165),i=r(92),o=r(93),a=r(168),s=r(169),f=r(5).Buffer,u=f.alloc(128),c={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function h(e,t,r){var a=function(e){function t(t){return o(e).update(t).digest()}return"rmd160"===e||"ripemd160"===e?function(e){return(new i).update(e).digest()}:"md5"===e?n:t}(e),s="sha512"===e||"sha384"===e?128:64;t.length>s?t=a(t):t.lengthe;)r.ishrn(1);if(r.isEven()&&r.iadd(s),r.testn(1)||r.iadd(f),t.cmp(f)){if(!t.cmp(u))for(;r.mod(c).cmp(h);)r.iadd(l)}else for(;r.mod(o).cmp(d);)r.iadd(l);if(m(p=r.shrn(1))&&m(r)&&v(p)&&v(r)&&a.test(p)&&a.test(r))return r}}},function(e,t,r){"use strict";var n=r(4),i=r(45);function o(e){this.rand=e||new i.Rand}e.exports=o,o.create=function(e){return new o(e)},o.prototype._randbelow=function(e){var t=e.bitLength(),r=Math.ceil(t/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(e)>=0);return i},o.prototype._randrange=function(e,t){var r=t.sub(e);return e.add(this._randbelow(r))},o.prototype.test=function(e,t,r){var i=e.bitLength(),o=n.mont(e),a=new n(1).toRed(o);t||(t=Math.max(1,i/48|0));for(var s=e.subn(1),f=0;!s.testn(f);f++);for(var u=e.shrn(f),c=s.toRed(o);t>0;t--){var h=this._randrange(new n(2),s);r&&r(h);var d=h.toRed(o).redPow(u);if(0!==d.cmp(a)&&0!==d.cmp(c)){for(var l=1;l0;t--){var c=this._randrange(new n(2),a),h=e.gcd(c);if(0!==h.cmpn(1))return h;var d=c.toRed(i).redPow(f);if(0!==d.cmp(o)&&0!==d.cmp(u)){for(var l=1;l>6],i=0==(32&r);if(31==(31&r)){var o=r;for(r=0;128==(128&o);){if(o=e.readUInt8(t),e.isError(o))return o;r<<=7,r|=127&o}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:s.tag[r]}}function h(e,t,r){var n=e.readUInt8(r);if(e.isError(n))return n;if(!t&&128===n)return null;if(0==(128&n))return n;var i=127&n;if(i>4)return e.error("length octect is too long");n=0;for(var o=0;o=31)return n.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=s.tagClassByName[r||"universal"]<<6}(e,t,r,this.reporter);if(n.length<128)return(o=new i(2))[0]=a,o[1]=n.length,this._createEncoderBuffer([o,n]);for(var f=1,u=n.length;u>=256;u>>=8)f++;(o=new i(2+f))[0]=a,o[1]=128|f;u=1+f;for(var c=n.length;c>0;u--,c>>=8)o[u]=255&c;return this._createEncoderBuffer([o,n])},u.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var r=new i(2*e.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var o=0;for(n=0;n=128;a>>=7)o++}var s=new i(o),f=s.length-1;for(n=e.length-1;n>=0;n--){a=e[n];for(s[f--]=127&a;(a>>=7)>0;)s[f--]=128|127&a}return this._createEncoderBuffer(s)},u.prototype._encodeTime=function(e,t){var r,n=new Date(e);return"gentime"===t?r=[c(n.getFullYear()),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[c(n.getFullYear()%100),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(r,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){var r=e.toArray();!e.sign&&128&r[0]&&r.unshift(0),e=new i(r)}if(i.isBuffer(e)){var n=e.length;0===e.length&&n++;var o=new i(n);return e.copy(o),0===e.length&&(o[0]=0),this._createEncoderBuffer(o)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);n=1;for(var a=e;a>=256;a>>=8)n++;for(a=(o=new Array(n)).length-1;a>=0;a--)o[a]=255&e,e>>=8;return 128&o[0]&&o.unshift(0),this._createEncoderBuffer(new i(o))},u.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},u.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},u.prototype._skipDefault=function(e,t,r){var n,i=this._baseState;if(null===i.default)return!1;var o=e.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,t,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n="80"?r(n.length/2,128):"")+n}var i=t.map(e).join("");return r(i.length/2,192)+i}(e)},decode:function(e){var t=2,r=function(){if(t>=e.length)throw"";var r=e.slice(t,t+2);return r<"80"?(t+=2,"0x"+r):r<"c0"?i():o()},n=function(){var r=parseInt(e.slice(t,t+=2),16)%64;return r<56?r:parseInt(e.slice(t,t+=2*(r-55)),16)},i=function(){var r=n();return"0x"+e.slice(t,t+=2*r)},o=function(){for(var e=2*n()+t,i=[];t>>((3&t)<<3)&255;return o}}},function(e,t,r){"use strict";for(var n=[],i=0;i<256;++i)n[i]=(i+256).toString(16).substr(1);e.exports=function(e,t){var r=t||0,i=n;return[i[e[r++]],i[e[r++]],i[e[r++]],i[e[r++]],"-",i[e[r++]],i[e[r++]],"-",i[e[r++]],i[e[r++]],"-",i[e[r++]],i[e[r++]],"-",i[e[r++]],i[e[r++]],i[e[r++]],i[e[r++]],i[e[r++]],i[e[r++]]].join("")}},function(e,t,r){"use strict";var n=function(){return(n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=2*this.getChainId()+35&&this._common.gteHardfork("spuriousDragon");this._senderPubKey=i.ecrecover(e,t,this.r,this.s,r?this.getChainId():void 0)}catch(e){return!1}return!!this._senderPubKey},e.prototype.sign=function(e){this.v=new a.Buffer([]),this.s=new a.Buffer([]),this.r=new a.Buffer([]);var t=this.hash(!1),r=i.ecsign(t,e);this._implementsEIP155()&&(r.v+=2*this.getChainId()+8),Object.assign(this,r)},e.prototype.getDataFee=function(){for(var e=this.raw[5],t=new i.BN(0),r=0;r0&&t.push(["gas limit is too low. Need at least "+this.getBaseFee()]),!1===e?0===t.length:t.join(" ")},e.prototype.serialize=function(){return i.rlp.encode(this.raw)},e.prototype.toJSON=function(e){return void 0===e&&(e=!1),{}},e.prototype._validateV=function(e){if(void 0!==e&&0!==e.length&&this._common.gteHardfork("spuriousDragon")){var t=i.bufferToInt(e);if(27!==t&&28!==t)if(!(t===2*this.getChainId()+35||t===2*this.getChainId()+36))throw new Error("Incompatible EIP155-based V "+t+" and chain id "+this.getChainId()+". See the second parameter of the Transaction constructor to set the chain id.")}},e.prototype._isSigned=function(){return this.v.length>0&&this.r.length>0&&this.s.length>0},e.prototype._overrideVSetterWithValidation=function(){var e=this,t=Object.getOwnPropertyDescriptor(this,"v");Object.defineProperty(this,"v",n({},t,{set:function(r){void 0!==r&&e._validateV(i.toBuffer(r)),t.set(r)}}))},e.prototype._implementsEIP155=function(){var e=this._common.gteHardfork("spuriousDragon");if(!this._isSigned())return e;var t=i.bufferToInt(this.v);return(t===2*this.getChainId()+35||t===2*this.getChainId()+36)&&e},e}();t.default=f},function(e,t,r){"use strict";function n(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}Object.defineProperty(t,"__esModule",{value:!0});var i=r(99);t.secp256k1=i;var o=r(57),a=r(14);t.BN=a;var s=r(102);t.rlp=s,Object.assign(t,o),n(r(492)),n(r(493)),n(r(104)),n(r(500)),n(r(58)),n(r(501))},function(e){e.exports=JSON.parse('{"COMPRESSED_TYPE_INVALID":"compressed should be a boolean","EC_PRIVATE_KEY_TYPE_INVALID":"private key should be a Buffer","EC_PRIVATE_KEY_LENGTH_INVALID":"private key length is invalid","EC_PRIVATE_KEY_RANGE_INVALID":"private key range is invalid","EC_PRIVATE_KEY_TWEAK_ADD_FAIL":"tweak out of range or resulting private key is invalid","EC_PRIVATE_KEY_TWEAK_MUL_FAIL":"tweak out of range","EC_PRIVATE_KEY_EXPORT_DER_FAIL":"couldn\'t export to DER format","EC_PRIVATE_KEY_IMPORT_DER_FAIL":"couldn\'t import from DER format","EC_PUBLIC_KEYS_TYPE_INVALID":"public keys should be an Array","EC_PUBLIC_KEYS_LENGTH_INVALID":"public keys Array should have at least 1 element","EC_PUBLIC_KEY_TYPE_INVALID":"public key should be a Buffer","EC_PUBLIC_KEY_LENGTH_INVALID":"public key length is invalid","EC_PUBLIC_KEY_PARSE_FAIL":"the public key could not be parsed or is invalid","EC_PUBLIC_KEY_CREATE_FAIL":"private was invalid, try again","EC_PUBLIC_KEY_TWEAK_ADD_FAIL":"tweak out of range or resulting public key is invalid","EC_PUBLIC_KEY_TWEAK_MUL_FAIL":"tweak out of range","EC_PUBLIC_KEY_COMBINE_FAIL":"the sum of the public keys is not valid","ECDH_FAIL":"scalar was invalid (zero or overflow)","ECDSA_SIGNATURE_TYPE_INVALID":"signature should be a Buffer","ECDSA_SIGNATURE_LENGTH_INVALID":"signature length is invalid","ECDSA_SIGNATURE_PARSE_FAIL":"couldn\'t parse signature","ECDSA_SIGNATURE_PARSE_DER_FAIL":"couldn\'t parse DER signature","ECDSA_SIGNATURE_SERIALIZE_DER_FAIL":"couldn\'t serialize signature to DER format","ECDSA_SIGN_FAIL":"nonce generation function failed or private key is invalid","ECDSA_RECOVER_FAIL":"couldn\'t recover public key from signature","MSG32_TYPE_INVALID":"message should be a Buffer","MSG32_LENGTH_INVALID":"message length is invalid","OPTIONS_TYPE_INVALID":"options should be an Object","OPTIONS_DATA_TYPE_INVALID":"options.data should be a Buffer","OPTIONS_DATA_LENGTH_INVALID":"options.data length is invalid","OPTIONS_NONCEFN_TYPE_INVALID":"options.noncefn should be a Function","RECOVERY_ID_TYPE_INVALID":"recovery should be a Number","RECOVERY_ID_VALUE_INVALID":"recovery should have value between -1 and 4","TWEAK_TYPE_INVALID":"tweak should be a Buffer","TWEAK_LENGTH_INVALID":"tweak length is invalid"}')},function(e,t,r){"use strict";var n=r(12),i=r(462),o=r(463),a=r(464),s=r(469);function f(e){s.call(this,"digest"),this._hash=e}n(f,s),f.prototype._update=function(e){this._hash.update(e)},f.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new o:new f(a(e))}},function(e,t,r){"use strict";var n=r(13).Buffer,i=r(36).Transform;function o(e){i.call(this),this._block=n.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(12)(o,i),o.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},o.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},o.prototype.update=function(e,t){if(function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(e)||(e=n.from(e,t));for(var r=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},function(e,t,r){"use strict";var n=r(12),i=r(40),o=r(13).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function f(){this.init(),this._w=s,i.call(this,64,56)}function u(e,t,r){return r^e&(t^r)}function c(e,t,r){return e&t|r&(e|t)}function h(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function l(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}n(f,i),f.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},f.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,f=0|this._e,p=0|this._f,b=0|this._g,m=0|this._h,v=0;v<16;++v)r[v]=e.readInt32BE(4*v);for(;v<64;++v)r[v]=0|(((t=r[v-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+r[v-7]+l(r[v-15])+r[v-16];for(var y=0;y<64;++y){var g=m+d(f)+u(f,p,b)+a[y]+r[y]|0,w=h(n)+c(n,i,o)|0;m=b,b=p,p=f,f=s+g|0,s=o,o=i,i=n,n=g+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=f+this._e|0,this._f=p+this._f|0,this._g=b+this._g|0,this._h=m+this._h|0},f.prototype._hash=function(){var e=o.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=f},function(e,t,r){"use strict";var n=r(12),i=r(40),o=r(13).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function f(){this.init(),this._w=s,i.call(this,128,112)}function u(e,t,r){return r^e&(t^r)}function c(e,t,r){return e&t|r&(e|t)}function h(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function l(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function b(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function v(e,t){return e>>>0>>0?1:0}n(f,i),f.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},f.prototype._update=function(e){for(var t=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,f=0|this._fh,y=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,A=0|this._dl,S=0|this._el,E=0|this._fl,M=0|this._gl,x=0|this._hl,I=0;I<32;I+=2)t[I]=e.readInt32BE(4*I),t[I+1]=e.readInt32BE(4*I+4);for(;I<160;I+=2){var P=t[I-30],N=t[I-30+1],O=l(P,N),R=p(N,P),U=b(P=t[I-4],N=t[I-4+1]),C=m(N,P),B=t[I-14],T=t[I-14+1],j=t[I-32],L=t[I-32+1],F=R+T|0,D=O+B+v(F,R)|0;D=(D=D+U+v(F=F+C|0,C)|0)+j+v(F=F+L|0,L)|0,t[I]=D,t[I+1]=F}for(var z=0;z<160;z+=2){D=t[z],F=t[z+1];var q=c(r,n,i),H=c(w,_,k),K=h(r,w),V=h(w,r),G=d(s,S),W=d(S,s),$=a[z],Y=a[z+1],Z=u(s,f,y),J=u(S,E,M),X=x+W|0,Q=g+G+v(X,x)|0;Q=(Q=(Q=Q+Z+v(X=X+J|0,J)|0)+$+v(X=X+Y|0,Y)|0)+D+v(X=X+F|0,F)|0;var ee=V+H|0,te=K+q+v(ee,V)|0;g=y,x=M,y=f,M=E,f=s,E=S,s=o+Q+v(S=A+X|0,A)|0,o=i,A=k,i=n,k=_,n=r,_=w,r=Q+te+v(w=X+ee|0,X)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+A|0,this._el=this._el+S|0,this._fl=this._fl+E|0,this._gl=this._gl+M|0,this._hl=this._hl+x|0,this._ah=this._ah+r+v(this._al,w)|0,this._bh=this._bh+n+v(this._bl,_)|0,this._ch=this._ch+i+v(this._cl,k)|0,this._dh=this._dh+o+v(this._dl,A)|0,this._eh=this._eh+s+v(this._el,S)|0,this._fh=this._fh+f+v(this._fl,E)|0,this._gh=this._gh+y+v(this._gl,M)|0,this._hh=this._hh+g+v(this._hl,x)|0},f.prototype._hash=function(){var e=o.allocUnsafe(64);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=f},function(e,t,r){"use strict";var n=t;function i(e){return 1===e.length?"0"+e:e}function o(e){for(var t="",r=0;r>8,a=255&i;o?r.push(o,a):r.push(a)}return r},n.zero2=i,n.toHex=o,n.encode=function(e,t){return"hex"===t?o(e):e}},function(e,t,r){"use strict";var n,i=r(0)(r(1));function o(e){this.rand=e}if(e.exports=function(e){return n||(n=new o(null)),n.generate(e)},e.exports.Rand=o,o.prototype.generate=function(e){return this._rand(e)},o.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;r>>3},t.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},function(e,t,r){"use strict";var n=r(28),i=r(56),o=r(200),a=r(37),s=n.sum32,f=n.sum32_4,u=n.sum32_5,c=o.ch32,h=o.maj32,d=o.s0_256,l=o.s1_256,p=o.g0_256,b=o.g1_256,m=i.BlockHash,v=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function y(){if(!(this instanceof y))return new y;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=v,this.W=new Array(64)}n.inherits(y,m),e.exports=y,y.blockSize=512,y.outSize=256,y.hmacStrength=192,y.padLength=64,y.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;n=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),b(r)?n.showHidden=r:r&&e._extend(n,r),g(n.showHidden)&&(n.showHidden=!1),g(n.depth)&&(n.depth=2),g(n.colors)&&(n.colors=!1),g(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=f),h(n,t,n.depth)}function f(t,e){var r=u.styles[e];return r?"["+u.colors[r][0]+"m"+t+"["+u.colors[r][1]+"m":t}function c(t,e){return t}function h(t,r,n){if(t.customInspect&&r&&S(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,t);return v(i)||(i=h(t,i,n)),i}var o=function(t,e){if(g(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(y(e))return t.stylize(""+e,"number");if(b(e))return t.stylize(""+e,"boolean");if(m(e))return t.stylize("null","null")}(t,r);if(o)return o;var a=Object.keys(r),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(r)),A(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return d(r);if(0===a.length){if(S(r)){var u=r.name?": "+r.name:"";return t.stylize("[Function"+u+"]","special")}if(w(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(k(r))return t.stylize(Date.prototype.toString.call(r),"date");if(A(r))return d(r)}var f,c="",_=!1,M=["{","}"];(p(r)&&(_=!0,M=["[","]"]),S(r))&&(c=" [Function"+(r.name?": "+r.name:"")+"]");return w(r)&&(c=" "+RegExp.prototype.toString.call(r)),k(r)&&(c=" "+Date.prototype.toUTCString.call(r)),A(r)&&(c=" "+d(r)),0!==a.length||_&&0!=r.length?n<0?w(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),f=_?function(t,e,r,n,i){for(var o=[],a=0,s=e.length;a=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(f,c,M)):M[0]+c+M[1]}function d(t){return"["+Error.prototype.toString.call(t)+"]"}function l(t,e,r,n,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),O(n,i)||(a="["+i+"]"),s||(t.seen.indexOf(u.value)<0?(s=m(r)?h(t,u.value,null):h(t,u.value,r-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),g(a)){if(o&&i.match(/^\d+$/))return s;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function p(t){return Array.isArray(t)}function b(t){return"boolean"==typeof t}function m(t){return null===t}function y(t){return"number"==typeof t}function v(t){return"string"==typeof t}function g(t){return void 0===t}function w(t){return _(t)&&"[object RegExp]"===M(t)}function _(t){return"object"===(0,n.default)(t)&&null!==t}function k(t){return _(t)&&"[object Date]"===M(t)}function A(t){return _(t)&&("[object Error]"===M(t)||t instanceof Error)}function S(t){return"function"==typeof t}function M(t){return Object.prototype.toString.call(t)}function E(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(r){if(g(a)&&(a=t.env.NODE_DEBUG||""),r=r.toUpperCase(),!s[r])if(new RegExp("\\b"+r+"\\b","i").test(a)){var n=t.pid;s[r]=function(){var t=e.format.apply(e,arguments);console.error("%s %d: %s",r,n,t)}}else s[r]=function(){};return s[r]},e.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=p,e.isBoolean=b,e.isNull=m,e.isNullOrUndefined=function(t){return null==t},e.isNumber=y,e.isString=v,e.isSymbol=function(t){return"symbol"===(0,n.default)(t)},e.isUndefined=g,e.isRegExp=w,e.isObject=_,e.isDate=k,e.isError=A,e.isFunction=S,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"===(0,n.default)(t)||void 0===t},e.isBuffer=r(200);var x=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function I(){var t=new Date,e=[E(t.getHours()),E(t.getMinutes()),E(t.getSeconds())].join(":");return[t.getDate(),x[t.getMonth()],e].join(" ")}function O(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){console.log("%s - %s",I(),e.format.apply(e,arguments))},e.inherits=r(3),e._extend=function(t,e){if(!e||!_(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var P="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function C(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(P&&t[P]){var e;if("function"!=typeof(e=t[P]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,P,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise((function(t,n){e=t,r=n})),i=[],o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function f(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"===(0,e.default)(t)&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,r,n){if("number"==typeof t)return this._initNumber(t,r,n);if("object"===(0,e.default)(t))return this._initArray(t,r,n);"hex"===r&&(r=16),i(r===(0|r)&&r>=2&&r<=36);var o=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&o++,16===r?this._parseHex(t,o):this._parseBase(t,r,o),"-"===t[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),r,n)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(i("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=u(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=u(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,e.length-1),l=Math.max(0,f-t.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|t.words[p])*(o=0|e.words[l])+h)/67108864|0,h=67108863&a}r.words[f]=0|h,u=0|c}return 0!==u?r.words[f]=0|u:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?c[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var f=h[t],l=d[t];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(t);r=(p=p.idivn(l)).isZero()?b+r:c[f-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return i(void 0!==s),this.toArrayLike(s,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,f=new t(o),c=this.clone();if(u){for(s=0;!c.isZero();s++)a=c.andln(255),c.iushrn(8),f[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){i("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){i("number"==typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,l=0|a[1],p=8191&l,b=l>>>13,m=0|a[2],y=8191&m,v=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],A=8191&k,S=k>>>13,M=0|a[5],E=8191&M,x=M>>>13,I=0|a[6],O=8191&I,P=I>>>13,C=0|a[7],B=8191&C,T=C>>>13,R=0|a[8],U=8191&R,N=R>>>13,j=0|a[9],L=8191&j,F=j>>>13,D=0|s[0],q=8191&D,z=D>>>13,H=0|s[1],K=8191&H,V=H>>>13,G=0|s[2],W=8191&G,Y=G>>>13,$=0|s[3],J=8191&$,Z=$>>>13,X=0|s[4],Q=8191&X,tt=X>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ft=st>>>13,ct=0|s[8],ht=8191&ct,dt=ct>>>13,lt=0|s[9],pt=8191<,bt=lt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(f+(n=Math.imul(h,q))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,q)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(p,q),i=(i=Math.imul(p,z))+Math.imul(b,q)|0,o=Math.imul(b,z);var yt=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,V)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),i=(i=Math.imul(y,z))+Math.imul(v,q)|0,o=Math.imul(v,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var vt=(f+(n=n+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,W)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(w,q),i=(i=Math.imul(w,z))+Math.imul(_,q)|0,o=Math.imul(_,z),n=n+Math.imul(y,K)|0,i=(i=i+Math.imul(y,V)|0)+Math.imul(v,K)|0,o=o+Math.imul(v,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,Y)|0;var gt=(f+(n=n+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,J)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(S,q)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(y,W)|0,i=(i=i+Math.imul(y,Y)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,Y)|0,n=n+Math.imul(p,J)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,J)|0,o=o+Math.imul(b,Z)|0;var wt=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(E,q),i=(i=Math.imul(E,z))+Math.imul(x,q)|0,o=Math.imul(x,z),n=n+Math.imul(A,K)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(w,W)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Y)|0,n=n+Math.imul(y,J)|0,i=(i=i+Math.imul(y,Z)|0)+Math.imul(v,J)|0,o=o+Math.imul(v,Z)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,tt)|0;var _t=(f+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(d,rt)|0))<<13)|0;f=((o=o+Math.imul(d,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,q),i=(i=Math.imul(O,z))+Math.imul(P,q)|0,o=Math.imul(P,z),n=n+Math.imul(E,K)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,Y)|0,n=n+Math.imul(w,J)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,J)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(y,Q)|0,i=(i=i+Math.imul(y,tt)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(b,rt)|0,o=o+Math.imul(b,nt)|0;var kt=(f+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,at)|0)+Math.imul(d,ot)|0))<<13)|0;f=((o=o+Math.imul(d,at)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,q),i=(i=Math.imul(B,z))+Math.imul(T,q)|0,o=Math.imul(T,z),n=n+Math.imul(O,K)|0,i=(i=i+Math.imul(O,V)|0)+Math.imul(P,K)|0,o=o+Math.imul(P,V)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,Y)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,Z)|0)+Math.imul(S,J)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,n=n+Math.imul(y,rt)|0,i=(i=i+Math.imul(y,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,at)|0)+Math.imul(b,ot)|0,o=o+Math.imul(b,at)|0;var At=(f+(n=n+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ft)|0)+Math.imul(d,ut)|0))<<13)|0;f=((o=o+Math.imul(d,ft)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(U,q),i=(i=Math.imul(U,z))+Math.imul(N,q)|0,o=Math.imul(N,z),n=n+Math.imul(B,K)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(O,W)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,Y)|0,n=n+Math.imul(E,J)|0,i=(i=i+Math.imul(E,Z)|0)+Math.imul(x,J)|0,o=o+Math.imul(x,Z)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=(i=i+Math.imul(w,nt)|0)+Math.imul(_,rt)|0,o=o+Math.imul(_,nt)|0,n=n+Math.imul(y,ot)|0,i=(i=i+Math.imul(y,at)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,at)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(b,ut)|0,o=o+Math.imul(b,ft)|0;var St=(f+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,dt)|0)+Math.imul(d,ht)|0))<<13)|0;f=((o=o+Math.imul(d,dt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,q),i=(i=Math.imul(L,z))+Math.imul(F,q)|0,o=Math.imul(F,z),n=n+Math.imul(U,K)|0,i=(i=i+Math.imul(U,V)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,V)|0,n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(T,W)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(O,J)|0,i=(i=i+Math.imul(O,Z)|0)+Math.imul(P,J)|0,o=o+Math.imul(P,Z)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,at)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,n=n+Math.imul(y,ut)|0,i=(i=i+Math.imul(y,ft)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,ft)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,dt)|0)+Math.imul(b,ht)|0,o=o+Math.imul(b,dt)|0;var Mt=(f+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,bt)|0)+Math.imul(d,pt)|0))<<13)|0;f=((o=o+Math.imul(d,bt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(F,K)|0,o=Math.imul(F,V),n=n+Math.imul(U,W)|0,i=(i=i+Math.imul(U,Y)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,Y)|0,n=n+Math.imul(B,J)|0,i=(i=i+Math.imul(B,Z)|0)+Math.imul(T,J)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(A,ot)|0,i=(i=i+Math.imul(A,at)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ft)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ft)|0,n=n+Math.imul(y,ht)|0,i=(i=i+Math.imul(y,dt)|0)+Math.imul(v,ht)|0,o=o+Math.imul(v,dt)|0;var Et=(f+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,bt)|0)+Math.imul(b,pt)|0))<<13)|0;f=((o=o+Math.imul(b,bt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,Y))+Math.imul(F,W)|0,o=Math.imul(F,Y),n=n+Math.imul(U,J)|0,i=(i=i+Math.imul(U,Z)|0)+Math.imul(N,J)|0,o=o+Math.imul(N,Z)|0,n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,at)|0)+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(S,ut)|0,o=o+Math.imul(S,ft)|0,n=n+Math.imul(w,ht)|0,i=(i=i+Math.imul(w,dt)|0)+Math.imul(_,ht)|0,o=o+Math.imul(_,dt)|0;var xt=(f+(n=n+Math.imul(y,pt)|0)|0)+((8191&(i=(i=i+Math.imul(y,bt)|0)+Math.imul(v,pt)|0))<<13)|0;f=((o=o+Math.imul(v,bt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(L,J),i=(i=Math.imul(L,Z))+Math.imul(F,J)|0,o=Math.imul(F,Z),n=n+Math.imul(U,Q)|0,i=(i=i+Math.imul(U,tt)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(B,rt)|0,i=(i=i+Math.imul(B,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(O,ot)|0,i=(i=i+Math.imul(O,at)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,n=n+Math.imul(E,ut)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(x,ut)|0,o=o+Math.imul(x,ft)|0,n=n+Math.imul(A,ht)|0,i=(i=i+Math.imul(A,dt)|0)+Math.imul(S,ht)|0,o=o+Math.imul(S,dt)|0;var It=(f+(n=n+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,bt)|0)+Math.imul(_,pt)|0))<<13)|0;f=((o=o+Math.imul(_,bt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(U,rt)|0,i=(i=i+Math.imul(U,nt)|0)+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(O,ut)|0,i=(i=i+Math.imul(O,ft)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,ft)|0,n=n+Math.imul(E,ht)|0,i=(i=i+Math.imul(E,dt)|0)+Math.imul(x,ht)|0,o=o+Math.imul(x,dt)|0;var Ot=(f+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,bt)|0)+Math.imul(S,pt)|0))<<13)|0;f=((o=o+Math.imul(S,bt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(U,ot)|0,i=(i=i+Math.imul(U,at)|0)+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,ft)|0)+Math.imul(T,ut)|0,o=o+Math.imul(T,ft)|0,n=n+Math.imul(O,ht)|0,i=(i=i+Math.imul(O,dt)|0)+Math.imul(P,ht)|0,o=o+Math.imul(P,dt)|0;var Pt=(f+(n=n+Math.imul(E,pt)|0)|0)+((8191&(i=(i=i+Math.imul(E,bt)|0)+Math.imul(x,pt)|0))<<13)|0;f=((o=o+Math.imul(x,bt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),n=n+Math.imul(U,ut)|0,i=(i=i+Math.imul(U,ft)|0)+Math.imul(N,ut)|0,o=o+Math.imul(N,ft)|0,n=n+Math.imul(B,ht)|0,i=(i=i+Math.imul(B,dt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,dt)|0;var Ct=(f+(n=n+Math.imul(O,pt)|0)|0)+((8191&(i=(i=i+Math.imul(O,bt)|0)+Math.imul(P,pt)|0))<<13)|0;f=((o=o+Math.imul(P,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ut),i=(i=Math.imul(L,ft))+Math.imul(F,ut)|0,o=Math.imul(F,ft),n=n+Math.imul(U,ht)|0,i=(i=i+Math.imul(U,dt)|0)+Math.imul(N,ht)|0,o=o+Math.imul(N,dt)|0;var Bt=(f+(n=n+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,bt)|0)+Math.imul(T,pt)|0))<<13)|0;f=((o=o+Math.imul(T,bt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Tt=(f+(n=n+Math.imul(U,pt)|0)|0)+((8191&(i=(i=i+Math.imul(U,bt)|0)+Math.imul(N,pt)|0))<<13)|0;f=((o=o+Math.imul(N,bt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863;var Rt=(f+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,bt))+Math.imul(F,pt)|0))<<13)|0;return f=((o=Math.imul(F,bt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=yt,u[2]=vt,u[3]=gt,u[4]=wt,u[5]=_t,u[6]=kt,u[7]=At,u[8]=St,u[9]=Mt,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Ct,u[16]=Bt,u[17]=Tt,u[18]=Rt,0!==f&&(u[19]=f,r.length++),r};function b(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(p=l),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?l(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):b(this,t,e)},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,f=0;f=0&&(0!==c||f>=n);f--){var h=0|this.words[f];this.words[f]=c<<26-o|h>>>o,c=h&s}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){i("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(i("number"==typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,u=n.length-i.length;if("mod"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var f=0;f=0;h--){var d=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(i,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=d)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:n,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},a.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),f=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++f;for(var c=r.clone(),h=e.clone();!e.isZero();){for(var d=0,l=1;0==(e.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(c),o.isub(h)),n.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),n.isub(s),o.isub(u)):(r.isub(e),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},a.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var h=0,d=1;0==(r.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(n=0===e.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(t),n},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){i("number"==typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new A(t)},a.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){A.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},o(g,v),g.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},g.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new g;else if("p224"===t)e=new w;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new k}return y[t]=e,e},A.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},A.prototype._verify2=function(t,e){i(0==(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},A.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},A.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},A.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},A.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},A.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},A.prototype.isqr=function(t){return this.imul(t,t.clone())},A.prototype.sqr=function(t){return this.mul(t,t)},A.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,f).cmp(u);)c.redIAdd(u);for(var h=this.pow(c,n),d=this.pow(t,n.addn(1).iushrn(1)),l=this.pow(t,n),p=o;0!==l.cmp(s);){for(var b=l,m=0;0!==b.cmp(s);m++)b=b.redSqr();i(m=0;n--){for(var f=e.words[n],c=u-1;c>=0;c--){var h=f>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}u=26}return i},A.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},A.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new S(t)},o(S,A),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t)}).call(this,r(24)(t))},function(t,e,r){"use strict";var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},function(t,e,r){"use strict";var n=r(207);t.exports=function(t){return"string"!=typeof t?t:n(t)?t.slice(2):t}},function(t,e,r){"use strict";(function(e){var n=r(10),i=r(5),o=r(209),a=r(211),s=r(70),u=r(212),f=function(t){return i.isBN(t)},c=function(t){return t&&t.constructor&&"BigNumber"===t.constructor.name},h=function(t){try{return o.apply(null,arguments)}catch(e){throw new Error(e+' Given value: "'+t+'"')}},d=function(t){return!!/^(0x)?[0-9a-f]{40}$/i.test(t)&&(!(!/^(0x|0X)?[0-9a-f]{40}$/.test(t)&&!/^(0x|0X)?[0-9A-F]{40}$/.test(t))||l(t))},l=function(t){t=t.replace(/^0x/i,"");for(var e=w(t.toLowerCase()).replace(/^0x/i,""),r=0;r<40;r++)if(parseInt(e[r],16)>7&&t[r].toUpperCase()!==t[r]||parseInt(e[r],16)<=7&&t[r].toLowerCase()!==t[r])return!1;return!0},p=function(t){var e="";t=(t=(t=(t=(t=a.encode(t)).replace(/^(?:\u0000)*/,"")).split("").reverse().join("")).replace(/^(?:\u0000)*/,"")).split("").reverse().join("");for(var r=0;r>>4).toString(16)),e.push((15&t[r]).toString(16));return"0x"+e.join("")},isHex:v,isHexStrict:y,stripHexPrefix:function(t){return 0!==t&&v(t)?t.replace(/^(-)?0x/i,"$1"):t},leftPad:function(t,e,r){var n=/^0x/i.test(t)||"number"==typeof t,i=e-(t=t.toString(16).replace(/^0x/i,"")).length+1>=0?e-t.length+1:0;return(n?"0x":"")+new Array(i).join(r||"0")+t},rightPad:function(t,e,r){var n=/^0x/i.test(t)||"number"==typeof t,i=e-(t=t.toString(16).replace(/^0x/i,"")).length+1>=0?e-t.length+1:0;return(n?"0x":"")+t+new Array(i).join(r||"0")},toTwosComplement:function(t){return"0x"+h(t).toTwos(256).toString(16,64)},sha3:w,sha3Raw:function(t){return null===(t=w(t))?g:t}}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";var n=r(18),i=r(5),o=function(t){var e="A".charCodeAt(0),r="Z".charCodeAt(0);return(t=(t=t.toUpperCase()).substr(4)+t.substr(0,4)).split("").map((function(t){var n=t.charCodeAt(0);return n>=e&&n<=r?n-e+10:t})).join("")},a=function(t){for(var e,r=t;r.length>2;)e=r.slice(0,9),r=parseInt(e,10)%97+r.slice(e.length);return parseInt(r,10)%97},s=function(t){this._iban=t};s.toAddress=function(t){if(!(t=new s(t)).isDirect())throw new Error("IBAN is indirect and can't be converted");return t.toAddress()},s.toIban=function(t){return s.fromAddress(t).toString()},s.fromAddress=function(t){if(!n.isAddress(t))throw new Error("Provided address is not a valid address: "+t);t=t.replace("0x","").replace("0X","");var e=function(t,e){for(var r=t;r.length<2*e;)r="0"+r;return r}(new i(t,16).toString(36),15);return s.fromBban(e.toUpperCase())},s.fromBban=function(t){var e=("0"+(98-a(o("XE00"+t)))).slice(-2);return new s("XE"+e+t)},s.createIndirect=function(t){return s.fromBban("ETH"+t.institution+t.identifier)},s.isValid=function(t){return new s(t).isValid()},s.prototype.isValid=function(){return/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban)&&1===a(o(this._iban))},s.prototype.isDirect=function(){return 34===this._iban.length||35===this._iban.length},s.prototype.isIndirect=function(){return 20===this._iban.length},s.prototype.checksum=function(){return this._iban.substr(2,2)},s.prototype.institution=function(){return this.isIndirect()?this._iban.substr(7,4):""},s.prototype.client=function(){return this.isIndirect()?this._iban.substr(11):""},s.prototype.toAddress=function(){if(this.isDirect()){var t=this._iban.substr(4),e=new i(t,36);return n.toChecksumAddress(e.toString(16,20))}return""},s.prototype.toString=function(){return this._iban},t.exports=s},function(t,e,r){"use strict";var n={messageId:0,toPayload:function(t,e){if(!t)throw new Error('JSONRPC method should be specified for params: "'+JSON.stringify(e)+'"!');return n.messageId++,{jsonrpc:"2.0",id:n.messageId,method:t,params:e||[]}},isValidResponse:function(t){return Array.isArray(t)?t.every(e):e(t);function e(t){return!(!t||t.error||"2.0"!==t.jsonrpc||"number"!=typeof t.id&&"string"!=typeof t.id||void 0===t.result)}},toBatchPayload:function(t){return t.map((function(t){return n.toPayload(t.method,t.params)}))}};t.exports=n},function(t,e,r){"use strict";(function(t,n){var i,o=r(0)(r(1));!function(a){var s="object"==(0,o.default)(e)&&e&&!e.nodeType&&e,u="object"==(0,o.default)(t)&&t&&!t.nodeType&&t,f="object"==(void 0===n?"undefined":(0,o.default)(n))&&n;f.global!==f&&f.window!==f&&f.self!==f||(a=f);var c,h,d=2147483647,l=/^xn--/,p=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,m={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},y=Math.floor,v=String.fromCharCode;function g(t){throw new RangeError(m[t])}function w(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function _(t,e){var r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),n+w((t=t.replace(b,".")).split("."),e).join(".")}function k(t){for(var e,r,n=[],i=0,o=t.length;i=55296&&e<=56319&&i65535&&(e+=v((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+=v(t)})).join("")}function S(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function M(t,e,r){var n=0;for(t=r?y(t/700):t>>1,t+=y(t/e);t>455;n+=36)t=y(t/35);return y(n+36*t/(t+38))}function E(t){var e,r,n,i,o,a,s,u,f,c,h,l=[],p=t.length,b=0,m=128,v=72;for((r=t.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&g("not-basic"),l.push(t.charCodeAt(n));for(i=r>0?r+1:0;i=p&&g("invalid-input"),((u=(h=t.charCodeAt(i++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||u>y((d-b)/a))&&g("overflow"),b+=u*a,!(u<(f=s<=v?1:s>=v+26?26:s-v));s+=36)a>y(d/(c=36-f))&&g("overflow"),a*=c;v=M(b-o,e=l.length+1,0==o),y(b/e)>d-m&&g("overflow"),m+=y(b/e),b%=e,l.splice(b++,0,m)}return A(l)}function x(t){var e,r,n,i,o,a,s,u,f,c,h,l,p,b,m,w=[];for(l=(t=k(t)).length,e=128,r=0,o=72,a=0;a=e&&hy((d-r)/(p=n+1))&&g("overflow"),r+=(s-e)*p,e=s,a=0;ad&&g("overflow"),h==e){for(u=r,f=36;!(u<(c=f<=o?1:f>=o+26?26:f-o));f+=36)m=u-c,b=36-c,w.push(v(S(c+m%b,0))),u=y(m/b);w.push(v(S(u,0))),o=M(r,p,n==i),r=0,++n}++r,++e}return w.join("")}if(c={version:"1.4.1",ucs2:{decode:k,encode:A},decode:E,encode:x,toASCII:function(t){return _(t,(function(t){return p.test(t)?"xn--"+x(t):t}))},toUnicode:function(t){return _(t,(function(t){return l.test(t)?E(t.slice(4).toLowerCase()):t}))}},"object"==(0,o.default)(r(71))&&r(71))void 0===(i=function(){return c}.call(e,r,e,t))||(t.exports=i);else if(s&&u)if(t.exports==s)u.exports=c;else for(h in c)c.hasOwnProperty(h)&&(s[h]=c[h]);else a.punycode=c}(void 0)}).call(this,r(24)(t),r(7))},function(t,e,r){"use strict";(function(t){e.fetch=s(t.fetch)&&s(t.ReadableStream),e.writableStream=s(t.WritableStream),e.abortController=s(t.AbortController),e.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),e.blobConstructor=!0}catch(t){}var r;function n(){if(void 0!==r)return r;if(t.XMLHttpRequest){r=new t.XMLHttpRequest;try{r.open("GET",t.XDomainRequest?"/":"https://example.com")}catch(t){r=null}}else r=null;return r}function i(t){var e=n();if(!e)return!1;try{return e.responseType=t,e.responseType===t}catch(t){}return!1}var o=void 0!==t.ArrayBuffer,a=o&&s(t.ArrayBuffer.prototype.slice);function s(t){return"function"==typeof t}e.arraybuffer=e.fetch||o&&i("arraybuffer"),e.msstream=!e.fetch&&a&&i("ms-stream"),e.mozchunkedarraybuffer=!e.fetch&&o&&i("moz-chunked-arraybuffer"),e.overrideMimeType=e.fetch||!!n()&&s(n().overrideMimeType),e.vbArray=s(t.VBArray),r=null}).call(this,r(7))},function(t,e,r){"use strict";(function(t,n,i){var o=r(110),a=r(3),s=r(40),u=e.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},f=e.IncomingMessage=function(e,r,a,u){var f=this;if(s.Readable.call(f),f._mode=a,f.headers={},f.rawHeaders=[],f.trailers={},f.rawTrailers=[],f.on("end",(function(){t.nextTick((function(){f.emit("close")}))})),"fetch"===a){if(f._fetchResponse=r,f.url=r.url,f.statusCode=r.status,f.statusMessage=r.statusText,r.headers.forEach((function(t,e){f.headers[e.toLowerCase()]=t,f.rawHeaders.push(e,t)})),o.writableStream){var c=new WritableStream({write:function(t){return new Promise((function(e,r){f._destroyed?r():f.push(new i(t))?e():f._resumeFetch=e}))},close:function(){n.clearTimeout(u),f._destroyed||f.push(null)},abort:function(t){f._destroyed||f.emit("error",t)}});try{return void r.body.pipeTo(c).catch((function(t){n.clearTimeout(u),f._destroyed||f.emit("error",t)}))}catch(t){}}var h=r.body.getReader();!function t(){h.read().then((function(e){if(!f._destroyed){if(e.done)return n.clearTimeout(u),void f.push(null);f.push(new i(e.value)),t()}})).catch((function(t){n.clearTimeout(u),f._destroyed||f.emit("error",t)}))}()}else{if(f._xhr=e,f._pos=0,f.url=e.responseURL,f.statusCode=e.status,f.statusMessage=e.statusText,e.getAllResponseHeaders().split(/\r?\n/).forEach((function(t){var e=t.match(/^([^:]+):\s*(.*)/);if(e){var r=e[1].toLowerCase();"set-cookie"===r?(void 0===f.headers[r]&&(f.headers[r]=[]),f.headers[r].push(e[2])):void 0!==f.headers[r]?f.headers[r]+=", "+e[2]:f.headers[r]=e[2],f.rawHeaders.push(e[1],e[2])}})),f._charset="x-user-defined",!o.overrideMimeType){var d=f.rawHeaders["mime-type"];if(d){var l=d.match(/;\s*charset=([^;])(;|$)/);l&&(f._charset=l[1].toLowerCase())}f._charset||(f._charset="utf-8")}}};a(f,s.Readable),f.prototype._read=function(){var t=this._resumeFetch;t&&(this._resumeFetch=null,t())},f.prototype._onXHRProgress=function(){var t=this,e=t._xhr,r=null;switch(t._mode){case"text:vbarray":if(e.readyState!==u.DONE)break;try{r=new n.VBArray(e.responseBody).toArray()}catch(t){}if(null!==r){t.push(new i(r));break}case"text":try{r=e.responseText}catch(e){t._mode="text:vbarray";break}if(r.length>t._pos){var o=r.substr(t._pos);if("x-user-defined"===t._charset){for(var a=new i(o.length),s=0;st._pos&&(t.push(new i(new Uint8Array(f.result.slice(t._pos)))),t._pos=f.result.byteLength)},f.onload=function(){t.push(null)},f.readAsArrayBuffer(r)}t._xhr.readyState===u.DONE&&"ms-stream"!==t._mode&&t.push(null)}}).call(this,r(12),r(7),r(2).Buffer)},function(t,e,r){"use strict";(function(e,n){var i=r(54);t.exports=g;var o,a=r(104);g.ReadableState=v;r(74).EventEmitter;var s=function(t,e){return t.listeners(e).length},u=r(113),f=r(4).Buffer,c=e.Uint8Array||function(){};var h=r(41);h.inherits=r(3);var d=r(232),l=void 0;l=d&&d.debuglog?d.debuglog("stream"):function(){};var p,b=r(233),m=r(114);h.inherits(g,u);var y=["error","close","destroy","pause","resume"];function v(t,e){t=t||{};var n=e instanceof(o=o||r(31));this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,a=t.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new b,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(p||(p=r(55).StringDecoder),this.decoder=new p(t.encoding),this.encoding=t.encoding)}function g(t){if(o=o||r(31),!(this instanceof g))return new g(t);this._readableState=new v(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function w(t,e,r,n,i){var o,a=t._readableState;null===e?(a.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,A(t)}(t,a)):(i||(o=function(t,e){var r;n=e,f.isBuffer(n)||n instanceof c||"string"==typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));var n;return r}(a,e)),o?t.emit("error",o):a.objectMode||e&&e.length>0?("string"==typeof e||a.objectMode||Object.getPrototypeOf(e)===f.prototype||(e=function(t){return f.from(t)}(e)),n?a.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):_(t,a,e,!0):a.ended?t.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?_(t,a,e,!1):M(t,a)):_(t,a,e,!1))):n||(a.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=8388608?t=8388608:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function A(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(S,t):S(t))}function S(t){l("emit readable"),t.emit("readable"),O(t)}function M(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(E,t,e))}function E(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;to.length?o.length:t;if(a===o.length?i+=o:i+=o.slice(0,t),0===(t-=a)){a===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(a));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=f.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,a),0===(t-=a)){a===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(a));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function C(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(B,e,t))}function B(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function T(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?C(this):A(this),null;if(0===(t=k(t,e))&&e.ended)return 0===e.length&&C(this),null;var n,i=e.needReadable;return l("need readable",i),(0===e.length||e.length-t0?P(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&C(this)),null!==n&&this.emit("data",n),n},g.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},g.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,l("pipe count=%d opts=%j",o.pipesCount,e);var u=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr?c:g;function f(e,n){l("onunpipe"),e===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,l("cleanup"),t.removeListener("close",y),t.removeListener("finish",v),t.removeListener("drain",h),t.removeListener("error",m),t.removeListener("unpipe",f),r.removeListener("end",c),r.removeListener("end",g),r.removeListener("data",b),d=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||h())}function c(){l("onend"),t.end()}o.endEmitted?i.nextTick(u):r.once("end",u),t.on("unpipe",f);var h=function(t){return function(){var e=t._readableState;l("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&s(t,"data")&&(e.flowing=!0,O(t))}}(r);t.on("drain",h);var d=!1;var p=!1;function b(e){l("ondata"),p=!1,!1!==t.write(e)||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==T(o.pipes,t))&&!d&&(l("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,p=!0),r.pause())}function m(e){l("onerror",e),g(),t.removeListener("error",m),0===s(t,"error")&&t.emit("error",e)}function y(){t.removeListener("finish",v),g()}function v(){l("onfinish"),t.removeListener("close",y),g()}function g(){l("unpipe"),r.unpipe(t)}return r.on("data",b),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?a(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",m),t.once("close",y),t.once("finish",v),t.emit("pipe",r),o.flowing||(l("pipe resume"),r.resume()),t},g.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r(235),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||void 0,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||void 0}).call(this,r(7))},function(t,e,r){"use strict";t.exports=a;var n=r(31),i=r(41);function o(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length0&&(10===arguments[0]?l||(l=!0,h.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?h.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",u.Logger.errors.UNEXPECTED_ARGUMENT,{}):h.throwError("BigNumber.toString does not accept parameters",u.Logger.errors.UNEXPECTED_ARGUMENT,{})),y(this).toString(10)}},{key:"toHexString",value:function(){return this._hex}},{key:"toJSON",value:function(t){return{type:"BigNumber",hex:this.toHexString()}}}],[{key:"from",value:function(e){if(e instanceof t)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new t(d,b(e)):e.match(/^-?[0-9]+$/)?new t(d,b(new c(e))):h.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&v("underflow","BigNumber.from",e),(e>=9007199254740991||e<=-9007199254740991)&&v("overflow","BigNumber.from",e),t.from(String(e));var r=e;if("bigint"==typeof r)return t.from(r.toString());if((0,s.isBytes)(r))return t.from((0,s.hexlify)(r));if(r)if(r.toHexString){var n=r.toHexString();if("string"==typeof n)return t.from(n)}else{var i=r._hex;if(null==i&&"BigNumber"===r.type&&(i=r.hex),"string"==typeof i&&((0,s.isHexString)(i)||"-"===i[0]&&(0,s.isHexString)(i.substring(1))))return t.from(i)}return h.throwArgumentError("invalid BigNumber value","value",e)}},{key:"isBigNumber",value:function(t){return!(!t||!t._isBigNumber)}}]),t}();function b(t){if("string"!=typeof t)return b(t.toString(16));if("-"===t[0])return"-"===(t=t.substring(1))[0]&&h.throwArgumentError("invalid hex","value",t),"0x00"===(t=b(t))?t:"-"+t;if("0x"!==t.substring(0,2)&&(t="0x"+t),"0x"===t)return"0x00";for(t.length%2&&(t="0x0"+t.substring(2));t.length>4&&"0x00"===t.substring(0,4);)t="0x"+t.substring(4);return t}function m(t){return p.from(b(t))}function y(t){var e=p.from(t).toHexString();return"-"===e[0]?new c("-"+e.substring(3),16):new c(e.substring(2),16)}function v(t,e,r){var n={fault:t,operation:e};return null!=r&&(n.value=r),h.throwError(t,u.Logger.errors.NUMERIC_FAULT,n)}e.BigNumber=p},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.version=void 0;e.version="bignumber/5.0.13"},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.encode=function(t){return(0,n.hexlify)(function t(e){if(Array.isArray(e)){var r=[];if(e.forEach((function(e){r=r.concat(t(e))})),r.length<=55)return r.unshift(192+r.length),r;var i=s(r.length);return i.unshift(247+i.length),i.concat(r)}(0,n.isBytesLike)(e)||a.throwArgumentError("RLP object must be BytesLike","object",e);var o=Array.prototype.slice.call((0,n.arrayify)(e));if(1===o.length&&o[0]<=127)return o;if(o.length<=55)return o.unshift(128+o.length),o;var u=s(o.length);return u.unshift(183+u.length),u.concat(o)}(t))},e.decode=function(t){var e=(0,n.arrayify)(t),r=c(e,0);r.consumed!==e.length&&a.throwArgumentError("invalid rlp data","data",t);return r.result};var n=r(13),i=r(16),o=r(257),a=new i.Logger(o.version);function s(t){for(var e=[];t;)e.unshift(255&t),t>>=8;return e}function u(t,e,r){for(var n=0,i=0;ie+1+n&&a.throwError("child data too short",i.Logger.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:o}}function c(t,e){if(0===t.length&&a.throwError("data too short",i.Logger.errors.BUFFER_OVERRUN,{}),t[e]>=248){var r=t[e]-247;e+1+r>t.length&&a.throwError("data short segment too short",i.Logger.errors.BUFFER_OVERRUN,{});var o=u(t,e+1,r);return e+1+r+o>t.length&&a.throwError("data long segment too short",i.Logger.errors.BUFFER_OVERRUN,{}),f(t,e,e+1+r,r+o)}if(t[e]>=192){var s=t[e]-192;return e+1+s>t.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{}),f(t,e,e+1,s)}if(t[e]>=184){var c=t[e]-183;e+1+c>t.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{});var h=u(t,e+1,c);return e+1+c+h>t.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{}),{consumed:1+c+h,result:(0,n.hexlify)(t.slice(e+1+c,e+1+c+h))}}if(t[e]>=128){var d=t[e]-128;return e+1+d>t.length&&a.throwError("data too short",i.Logger.errors.BUFFER_OVERRUN,{}),{consumed:1+d,result:(0,n.hexlify)(t.slice(e+1,e+1+d))}}return{consumed:1,result:(0,n.hexlify)(t[e])}}},function(t,e,r){"use strict";var n=r(26).rotr32;function i(t,e,r){return t&e^~t&r}function o(t,e,r){return t&e^t&r^e&r}function a(t,e,r){return t^e^r}e.ft_1=function(t,e,r,n){return 0===t?i(e,r,n):1===t||3===t?a(e,r,n):2===t?o(e,r,n):void 0},e.ch32=i,e.maj32=o,e.p32=a,e.s0_256=function(t){return n(t,2)^n(t,13)^n(t,22)},e.s1_256=function(t){return n(t,6)^n(t,11)^n(t,25)},e.g0_256=function(t){return n(t,7)^n(t,18)^t>>>3},e.g1_256=function(t){return n(t,17)^n(t,19)^t>>>10}},function(t,e,r){"use strict";var n=r(26),i=r(42),o=r(122),a=r(21),s=n.sum32,u=n.sum32_4,f=n.sum32_5,c=o.ch32,h=o.maj32,d=o.s0_256,l=o.s1_256,p=o.g0_256,b=o.g1_256,m=i.BlockHash,y=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function v(){if(!(this instanceof v))return new v;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=y,this.W=new Array(64)}n.inherits(v,m),t.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n0&&t.topics.length!==n+1&&(e={anonymous:!0,inputs:[]})}var i=e.anonymous?t.topics:t.topics.slice(1);return r.returnValues=h.decodeLog(e.inputs,t.data,i),delete r.returnValues.__length__,r.event=e.name,r.signature=e.anonymous||!t.topics[0]?null:t.topics[0],r.raw={data:r.data,topics:r.topics},delete r.data,delete r.topics,r},d.prototype._encodeMethodABI=function(){var t=this._method.signature,e=this.arguments||[],r=!1,i=this._parent.options.jsonInterface.filter((function(e){return"constructor"===t&&e.type===t||(e.signature===t||e.signature===t.replace("0x","")||e.name===t)&&"function"===e.type})).map((function(t){var i=n.isArray(t.inputs)?t.inputs.length:0;if(i!==e.length)throw new Error("The number of arguments is not matching the methods required number. You need to pass "+i+" arguments.");return"function"===t.type&&(r=t.signature),n.isArray(t.inputs)?t.inputs:[]})).map((function(t){return h.encodeParameters(t,e).replace("0x","")}))[0]||"";if("constructor"===t){if(!this._deployData)throw new Error("The contract has no contract data option set. This is necessary to append the constructor parameters.");return this._deployData.startsWith("0x")||(this._deployData="0x"+this._deployData),this._deployData+i}var o=r?r+i:i;if(!o)throw new Error("Couldn't find a matching contract method named \""+this._method.name+'".');return o},d.prototype._decodeMethodReturn=function(t,e){if(!e)return null;e=e.length>=2?e.slice(2):e;var r=h.decodeParameters(t,e);return 1===r.__length__?r[0]:(delete r.__length__,r)},d.prototype.deploy=function(t,e){if((t=t||{}).arguments=t.arguments||[],!(t=this._getOrSetDefaultOptions(t)).data){if("function"==typeof e)return e(f.ContractMissingDeployDataError());throw f.ContractMissingDeployDataError()}var r=n.find(this.options.jsonInterface,(function(t){return"constructor"===t.type}))||{};return r.signature="constructor",this._createTxObject.apply({method:r,parent:this,deployData:t.data,_ethAccounts:this.constructor._ethAccounts},t.arguments)},d.prototype._generateEventOptions=function(){var t=Array.prototype.slice.call(arguments),e=this._getCallback(t),r=n.isObject(t[t.length-1])?t.pop():{},i=n.isString(t[0])?t[0]:"allevents",o="allevents"===i.toLowerCase()?{name:"ALLEVENTS",jsonInterface:this.options.jsonInterface}:this.options.jsonInterface.find((function(t){return"event"===t.type&&(t.name===i||t.signature==="0x"+i.replace("0x",""))}));if(!o)throw f.ContractEventDoesNotExistError(i);if(!a.isAddress(this.options.address))throw f.ContractNoAddressDefinedError();return{params:this._encodeEventABI(o,r),event:o,callback:e}},d.prototype.clone=function(){return new this.constructor(this.options.jsonInterface,this.options.address,this.options)},d.prototype.once=function(t,e,r){var i=Array.prototype.slice.call(arguments);if(!(r=this._getCallback(i)))throw f.ContractOnceRequiresCallbackError();e&&delete e.fromBlock,this._on(t,e,(function(t,e,i){i.unsubscribe(),n.isFunction(r)&&r(t,e,i)}))},d.prototype._on=function(){var t=this._generateEventOptions.apply(this,arguments);t.params&&t.params.toBlock&&(delete t.params.toBlock,console.warn("Invalid option: toBlock. Use getPastEvents for specific range.")),this._checkListener("newListener",t.event.name),this._checkListener("removeListener",t.event.name);var e=new s({subscription:{params:1,inputFormatter:[u.inputLogFormatter],outputFormatter:this._decodeEventABI.bind(t.event),subscriptionHandler:function(t){t.removed?this.emit("changed",t):this.emit("data",t),n.isFunction(this.callback)&&this.callback(null,t,this)}},type:"eth",requestManager:this._requestManager});return e.subscribe("logs",t.params,t.callback||function(){}),e},d.prototype.getPastEvents=function(){var t=this._generateEventOptions.apply(this,arguments),e=new o({name:"getPastLogs",call:"eth_getLogs",params:1,inputFormatter:[u.inputLogFormatter],outputFormatter:this._decodeEventABI.bind(t.event)});e.setRequestManager(this._requestManager);var r=e.buildCall();return e=null,r(t.params,t.callback)},d.prototype._createTxObject=function(){var t=Array.prototype.slice.call(arguments),e={};if("function"===this.method.type&&(e.call=this.parent._executeMethod.bind(e,"call"),e.call.request=this.parent._executeMethod.bind(e,"call",!0)),e.send=this.parent._executeMethod.bind(e,"send"),e.send.request=this.parent._executeMethod.bind(e,"send",!0),e.encodeABI=this.parent._encodeMethodABI.bind(e),e.estimateGas=this.parent._executeMethod.bind(e,"estimate"),t&&this.method.inputs&&t.length!==this.method.inputs.length){if(this.nextMethod)return this.nextMethod.apply(null,t);throw f.InvalidNumberOfParams(t.length,this.method.inputs.length,this.method.name)}return e.arguments=t||[],e._method=this.method,e._parent=this.parent,e._ethAccounts=this.parent.constructor._ethAccounts||this._ethAccounts,this.deployData&&(e._deployData=this.deployData),e},d.prototype._processExecuteArguments=function(t,e){var r={};if(r.type=t.shift(),r.callback=this._parent._getCallback(t),"call"===r.type&&!0!==t[t.length-1]&&(n.isString(t[t.length-1])||isFinite(t[t.length-1]))&&(r.defaultBlock=t.pop()),r.options=n.isObject(t[t.length-1])?t.pop():{},r.generateRequest=!0===t[t.length-1]&&t.pop(),r.options=this._parent._getOrSetDefaultOptions(r.options),r.options.data=this.encodeABI(),!this._deployData&&!a.isAddress(this._parent.options.address))throw f.ContractNoAddressDefinedError();return this._deployData||(r.options.to=this._parent.options.address),r.options.data?r:a._fireError(new Error("Couldn't find a matching contract method, or the number of parameters is wrong."),e.eventEmitter,e.reject,r.callback)},d.prototype._executeMethod=function(){var t=this,e=this._parent._processExecuteArguments.call(this,Array.prototype.slice.call(arguments),r),r=c("send"!==e.type),i=t.constructor._ethAccounts||t._ethAccounts;if(e.generateRequest){var s={params:[u.inputCallFormatter.call(this._parent,e.options)],callback:e.callback};return"call"===e.type?(s.params.push(u.inputDefaultBlockNumberFormatter.call(this._parent,e.defaultBlock)),s.method="eth_call",s.format=this._parent._decodeMethodReturn.bind(null,this._method.outputs)):s.method="eth_sendTransaction",s}switch(e.type){case"estimate":var d=new o({name:"estimateGas",call:"eth_estimateGas",params:1,inputFormatter:[u.inputCallFormatter],outputFormatter:a.hexToNumber,requestManager:t._parent._requestManager,accounts:i,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock}).createFunction();return d(e.options,e.callback);case"call":var l=new o({name:"call",call:"eth_call",params:2,inputFormatter:[u.inputCallFormatter,u.inputDefaultBlockNumberFormatter],outputFormatter:function(e){return t._parent._decodeMethodReturn(t._method.outputs,e)},requestManager:t._parent._requestManager,accounts:i,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock,handleRevert:t._parent.handleRevert,abiCoder:h}).createFunction();return l(e.options,e.defaultBlock,e.callback);case"send":if(!a.isAddress(e.options.from))return a._fireError(f.ContractNoFromAddressDefinedError(),r.eventEmitter,r.reject,e.callback);if(n.isBoolean(this._method.payable)&&!this._method.payable&&e.options.value&&e.options.value>0)return a._fireError(new Error("Can not send value to non-payable contract method or constructor"),r.eventEmitter,r.reject,e.callback);var p={receiptFormatter:function(e){if(n.isArray(e.logs)){var r=n.map(e.logs,(function(e){return t._parent._decodeEventABI.call({name:"ALLEVENTS",jsonInterface:t._parent.options.jsonInterface},e)}));e.events={};var i=0;r.forEach((function(t){t.event?e.events[t.event]?Array.isArray(e.events[t.event])?e.events[t.event].push(t):e.events[t.event]=[e.events[t.event],t]:e.events[t.event]=t:(e.events[i]=t,i++)})),delete e.logs}return e},contractDeployFormatter:function(e){var r=t._parent.clone();return r.options.address=e.contractAddress,r}},b=new o({name:"sendTransaction",call:"eth_sendTransaction",params:1,inputFormatter:[u.inputTransactionFormatter],requestManager:t._parent._requestManager,accounts:t.constructor._ethAccounts||t._ethAccounts,defaultAccount:t._parent.defaultAccount,defaultBlock:t._parent.defaultBlock,transactionBlockTimeout:t._parent.transactionBlockTimeout,transactionConfirmationBlocks:t._parent.transactionConfirmationBlocks,transactionPollingTimeout:t._parent.transactionPollingTimeout,defaultCommon:t._parent.defaultCommon,defaultChain:t._parent.defaultChain,defaultHardfork:t._parent.defaultHardfork,handleRevert:t._parent.handleRevert,extraFormatters:p,abiCoder:h}).createFunction();return b(e.options,e.callback);default:throw new Error('Method "'+e.type+'" not implemented.')}},t.exports=d},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(2).Buffer,o=r(10),a=r(18),s=r(128).AbiCoder,u=r(128).ParamType,f=new s((function(t,e){return!t.match(/^u?int/)||o.isArray(e)||o.isObject(e)&&"BN"===e.constructor.name?e:e.toString()}));function c(){}var h=function(){};h.prototype.encodeFunctionSignature=function(t){return o.isObject(t)&&(t=a._jsonInterfaceMethodToString(t)),a.sha3(t).slice(0,10)},h.prototype.encodeEventSignature=function(t){return o.isObject(t)&&(t=a._jsonInterfaceMethodToString(t)),a.sha3(t)},h.prototype.encodeParameter=function(t,e){return this.encodeParameters([t],[e])},h.prototype.encodeParameters=function(t,e){var r=this;return t=r.mapTypes(t),e=e.map((function(e,i){var o=t[i];if("object"===(0,n.default)(o)&&o.type&&(o=o.type),e=r.formatParam(o,e),"string"==typeof o&&o.includes("tuple")){!function t(e,n){if("array"===e.name)return n.map((function(r){return t(f._getCoder(u.from(e.type.replace("[]",""))),r)}));e.coders.forEach((function(e,i){"tuple"===e.name?t(e,n[i]):n[i]=r.formatParam(e.name,n[i])}))}(f._getCoder(u.from(o)),e)}return e})),f.encode(t,e)},h.prototype.mapTypes=function(t){var e=this,r=[];return t.forEach((function(t){if("object"===(0,n.default)(t)&&"function"===t.type&&(t=Object.assign({},t,{type:"bytes24"})),e.isSimplifiedStructFormat(t)){var i=Object.keys(t)[0];r.push(Object.assign(e.mapStructNameAndType(i),{components:e.mapStructToCoderFormat(t[i])}))}else r.push(t)})),r},h.prototype.isSimplifiedStructFormat=function(t){return"object"===(0,n.default)(t)&&void 0===t.components&&void 0===t.name},h.prototype.mapStructNameAndType=function(t){var e="tuple";return t.indexOf("[]")>-1&&(e="tuple[]",t=t.slice(0,-2)),{type:e,name:t}},h.prototype.mapStructToCoderFormat=function(t){var e=this,r=[];return Object.keys(t).forEach((function(i){"object"!==(0,n.default)(t[i])?r.push({name:i,type:t[i]}):r.push(Object.assign(e.mapStructNameAndType(i),{components:e.mapStructToCoderFormat(t[i])}))})),r},h.prototype.formatParam=function(t,e){var r=this,n=new RegExp(/^bytes([0-9]*)$/),o=new RegExp(/^bytes([0-9]*)\[\]$/),s=new RegExp(/^(u?int)([0-9]*)$/),u=new RegExp(/^(u?int)([0-9]*)\[\]$/);if(a.isBN(e)||a.isBigNumber(e))return e.toString(10);if(t.match(o)||t.match(u))return e.map((function(e){return r.formatParam(t.replace("[]",""),e)}));var f=t.match(s);if(f){var c=parseInt(f[2]||"256");c/80&&(!e||"0x"===e||"0X"===e))throw new Error("Returned values aren't valid, did it run Out of Gas? You might also see this error if you are not using the correct ABI for the contract you are retrieving data from, requesting data from a block number that does not exist, or querying a node which is not fully synced.");var n=f.decode(this.mapTypes(t),"0x"+e.replace(/0x/i,""),r),i=new c;return i.__length__=0,t.forEach((function(t,e){var r=n[i.__length__];r="0x"===r?null:r,i[e]=r,o.isObject(t)&&t.name&&(i[t.name]=r),i.__length__++})),i},h.prototype.decodeLog=function(t,e,r){var n=this;r=o.isArray(r)?r:[r],e=e||"";var i=[],a=[],s=0;t.forEach((function(t,e){t.indexed?(a[e]=["bool","int","uint","address","fixed","ufixed"].find((function(e){return-1!==t.type.indexOf(e)}))?n.decodeParameter(t.type,r[s]):r[s],s++):i[e]=t}));var u=e,f=u?this.decodeParametersWith(i,u,!0):[],h=new c;return h.__length__=0,t.forEach((function(t,e){h[e]="string"===t.type?"":null,void 0!==f[e]&&(h[e]=f[e]),void 0!==a[e]&&(h[e]=a[e]),t.name&&(h[t.name]=h[e]),h.__length__++})),h};var d=new h;t.exports=d},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"ConstructorFragment",{enumerable:!0,get:function(){return n.ConstructorFragment}}),Object.defineProperty(e,"EventFragment",{enumerable:!0,get:function(){return n.EventFragment}}),Object.defineProperty(e,"FormatTypes",{enumerable:!0,get:function(){return n.FormatTypes}}),Object.defineProperty(e,"Fragment",{enumerable:!0,get:function(){return n.Fragment}}),Object.defineProperty(e,"FunctionFragment",{enumerable:!0,get:function(){return n.FunctionFragment}}),Object.defineProperty(e,"ParamType",{enumerable:!0,get:function(){return n.ParamType}}),Object.defineProperty(e,"AbiCoder",{enumerable:!0,get:function(){return i.AbiCoder}}),Object.defineProperty(e,"defaultAbiCoder",{enumerable:!0,get:function(){return i.defaultAbiCoder}}),Object.defineProperty(e,"checkResultErrors",{enumerable:!0,get:function(){return o.checkResultErrors}}),Object.defineProperty(e,"Indexed",{enumerable:!0,get:function(){return o.Indexed}}),Object.defineProperty(e,"Interface",{enumerable:!0,get:function(){return o.Interface}}),Object.defineProperty(e,"LogDescription",{enumerable:!0,get:function(){return o.LogDescription}}),Object.defineProperty(e,"TransactionDescription",{enumerable:!0,get:function(){return o.TransactionDescription}});var n=r(80),i=r(131),o=r(290)},function(t,e,r){"use strict";function n(e,r){return t.exports=n=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},n(e,r)}t.exports=n},function(t,e,r){"use strict";t.exports=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.defaultAbiCoder=e.AbiCoder=void 0;var i=n(r(6)),o=n(r(8)),a=r(13),s=r(36),u=r(16),f=r(43),c=r(25),h=r(278),d=r(132),l=r(280),p=r(133),b=r(282),m=r(283),y=r(284),v=r(285),g=r(289),w=r(80),_=new u.Logger(f.version),k=new RegExp(/^bytes([0-9]*)$/),A=new RegExp(/^(u?int)([0-9]*)$/),S=function(){function t(e){(0,i.default)(this,t),_.checkNew(this instanceof t?this.constructor:void 0,t),(0,s.defineReadOnly)(this,"coerceFunc",e||null)}return(0,o.default)(t,[{key:"_getCoder",value:function(t){var e=this;switch(t.baseType){case"address":return new h.AddressCoder(t.name);case"bool":return new l.BooleanCoder(t.name);case"string":return new v.StringCoder(t.name);case"bytes":return new p.BytesCoder(t.name);case"array":return new d.ArrayCoder(this._getCoder(t.arrayChildren),t.arrayLength,t.name);case"tuple":return new g.TupleCoder((t.components||[]).map((function(t){return e._getCoder(t)})),t.name);case"":return new m.NullCoder(t.name)}var r=t.type.match(A);if(r){var n=parseInt(r[2]||"256");return(0===n||n>256||n%8!=0)&&_.throwArgumentError("invalid "+r[1]+" bit length","param",t),new y.NumberCoder(n/8,"int"===r[1],t.name)}if(r=t.type.match(k)){var i=parseInt(r[1]);return(0===i||i>32)&&_.throwArgumentError("invalid bytes length","param",t),new b.FixedBytesCoder(i,t.name)}return _.throwArgumentError("invalid type","type",t.type)}},{key:"_getWordSize",value:function(){return 32}},{key:"_getReader",value:function(t,e){return new c.Reader(t,this._getWordSize(),this.coerceFunc,e)}},{key:"_getWriter",value:function(){return new c.Writer(this._getWordSize())}},{key:"encode",value:function(t,e){var r=this;t.length!==e.length&&_.throwError("types/values length mismatch",u.Logger.errors.INVALID_ARGUMENT,{count:{types:t.length,values:e.length},value:{types:t,values:e}});var n=t.map((function(t){return r._getCoder(w.ParamType.from(t))})),i=new g.TupleCoder(n,"_"),o=this._getWriter();return i.encode(o,e),o.data}},{key:"decode",value:function(t,e,r){var n=this,i=t.map((function(t){return n._getCoder(w.ParamType.from(t))}));return new g.TupleCoder(i,"_").decode(this._getReader((0,a.arrayify)(e),r))}}]),t}();e.AbiCoder=S;var M=new S;e.defaultAbiCoder=M},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.pack=m,e.unpack=y,e.ArrayCoder=void 0;var i=n(r(6)),o=n(r(8)),a=n(r(19)),s=n(r(20)),u=n(r(17)),f=n(r(1)),c=r(16),h=r(43),d=r(25),l=r(279);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,u.default)(t);if(e){var i=(0,u.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var b=new c.Logger(h.version);function m(t,e,r){var n=null;if(Array.isArray(r))n=r;else if(r&&"object"===(0,f.default)(r)){var i={};n=e.map((function(t){var e=t.localName;return e||b.throwError("cannot encode object for signature with missing names",c.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),i[e]&&b.throwError("cannot encode object for signature with duplicate names",c.Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:r}),i[e]=!0,r[e]}))}else b.throwArgumentError("invalid tuple value","tuple",r);e.length!==n.length&&b.throwArgumentError("types/value length mismatch","tuple",r);var o=new d.Writer(t.wordSize),a=new d.Writer(t.wordSize),s=[];e.forEach((function(t,e){var r=n[e];if(t.dynamic){var i=a.length;t.encode(a,r);var u=o.writeUpdatableValue();s.push((function(t){u(t+i)}))}else t.encode(o,r)})),s.forEach((function(t){t(o.length)}));var u=t.appendWriter(o);return u+=t.appendWriter(a)}function y(t,e){var r=[],n=t.subReader(0);e.forEach((function(e){var i=null;if(e.dynamic){var o=t.readValue(),a=n.subReader(o.toNumber());try{i=e.decode(a)}catch(t){if(t.code===c.Logger.errors.BUFFER_OVERRUN)throw t;(i=t).baseType=e.name,i.name=e.localName,i.type=e.type}}else try{i=e.decode(t)}catch(t){if(t.code===c.Logger.errors.BUFFER_OVERRUN)throw t;(i=t).baseType=e.name,i.name=e.localName,i.type=e.type}null!=i&&r.push(i)}));var i=e.reduce((function(t,e){var r=e.localName;return r&&(t[r]||(t[r]=0),t[r]++),t}),{});e.forEach((function(t,e){var n=t.localName;if(n&&1===i[n]&&("length"===n&&(n="_length"),null==r[n])){var o=r[e];o instanceof Error?Object.defineProperty(r,n,{get:function(){throw o}}):r[n]=o}}));for(var o=function(t){var e=r[t];e instanceof Error&&Object.defineProperty(r,t,{get:function(){throw e}})},a=0;a=0?n:"")+"]",u=-1===n||t.dynamic;return(a=e.call(this,"array",s,o,u)).coder=t,a.length=n,a}return(0,o.default)(r,[{key:"encode",value:function(t,e){Array.isArray(e)||this._throwError("expected array value",e);var r=this.length;-1===r&&(r=e.length,t.writeValue(e.length)),b.checkArgumentCount(e.length,r,"coder array"+(this.localName?" "+this.localName:""));for(var n=[],i=0;i=0;i--){var s=n(a[i]);r=n(new t(r+s,"hex"))}}return"0x"+r},e.normalize=o}).call(this,r(2).Buffer)},function(t,e,r){"use strict";(function(e){var n=r(44);function i(t){return parseInt(t.toString("hex"),16)}function o(t){var r=t.toString(16);return r.length%2==1&&(r="0"+r),e.from(r,"hex")}t.exports={numberToBuffer:o,bufferToNumber:i,varintBufferEncode:function(t){return e.from(n.encode(i(t)))},varintBufferDecode:function(t){return o(n.decode(t))},varintEncode:function(t){return e.from(n.encode(t))}}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";var n=r(139);t.exports=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}},function(t,e,r){"use strict";t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&void 0!==arguments[0]?arguments[0]:this.multibaseName;if(this.string&&t===this.multibaseName)return this.string;var e=null;if(0===this.version){if("base58btc"!==t)throw new Error("not supported with CIDv0, to support different bases, please migrate the instance do CIDv1, you can do that through cid.toV1()");e=s.toB58String(this.multihash)}else{if(1!==this.version)throw new Error("unsupported version");e=u.encode(t,this.buffer).toString()}return t===this.multibaseName&&Object.defineProperty(this,"string",{value:e}),e}},{key:Symbol.for("nodejs.util.inspect.custom"),value:function(){return"CID("+this.toString()+")"}},{key:"toString",value:function(t){return this.toBaseEncodedString(t)}},{key:"toJSON",value:function(){return{codec:this.codec,version:this.version,hash:this.multihash}}},{key:"equals",value:function(t){return this.codec===t.codec&&this.version===t.version&&this.multihash.equals(t.multihash)}},{key:"buffer",get:function(){var t=this._buffer;if(!t){if(0===this.version)t=this.multihash;else{if(1!==this.version)throw new Error("unsupported version");t=a.concat([a.from("01","hex"),f.getCodeVarint(this.codec),this.multihash])}Object.defineProperty(this,"_buffer",{value:t})}return t}},{key:"prefix",get:function(){return a.concat([a.from("0".concat(this.version),"hex"),f.getCodeVarint(this.codec),s.prefix(this.multihash)])}}],[{key:"validateCID",value:function(t){var e=h.checkCIDComponents(t);if(e)throw new Error(e)}}]),t}(),{className:"CID",symbolName:"@ipld/js-cid/CID"});d.codecs=c,t.exports=d},function(t,e,r){"use strict";var n=r(4).Buffer;t.exports=function(t){if(t.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),r=0;r>>0,c=new Uint8Array(a);t[r];){var h=e[t.charCodeAt(r)];if(255===h)return;for(var d=0,l=a-1;(0!==h||d>>0,c[l]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");o=d,r++}if(" "!==t[r]){for(var p=a-o;p!==a&&0===c[p];)p++;var b=n.allocUnsafe(i+(a-p));b.fill(0,0,i);for(var m=i;p!==a;)b[m++]=c[p++];return b}}}return{encode:function(e){if((Array.isArray(e)||e instanceof Uint8Array)&&(e=n.from(e)),!n.isBuffer(e))throw new TypeError("Expected Buffer");if(0===e.length)return"";for(var r=0,i=0,o=0,a=e.length;o!==a&&0===e[o];)o++,r++;for(var f=(a-o)*c+1>>>0,h=new Uint8Array(f);o!==a;){for(var d=e[o],l=0,p=f-1;(0!==d||l>>0,h[p]=d%s>>>0,d=d/s>>>0;if(0!==d)throw new Error("Non-zero carry");i=l,o++}for(var b=f-i;b!==f&&0===h[b];)b++;for(var m=u.repeat(r);b=this._blockSize;){for(var o=this._blockOffset;o0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},o.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=o},function(t,e,r){"use strict";var n=r(3),i=r(37),o=r(4).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}function f(t,e,r){return r^t&(e^r)}function c(t,e,r){return t&e|r&(t|e)}function h(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function d(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function l(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}n(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,p=0|this._f,b=0|this._g,m=0|this._h,y=0;y<16;++y)r[y]=t.readInt32BE(4*y);for(;y<64;++y)r[y]=0|(((e=r[y-2])>>>17|e<<15)^(e>>>19|e<<13)^e>>>10)+r[y-7]+l(r[y-15])+r[y-16];for(var v=0;v<64;++v){var g=m+d(u)+f(u,p,b)+a[v]+r[v]|0,w=h(n)+c(n,i,o)|0;m=b,b=p,p=u,u=s+g|0,s=o,o=i,i=n,n=g+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=p+this._f|0,this._g=b+this._g|0,this._h=m+this._h|0},u.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=u},function(t,e,r){"use strict";var n=r(3),i=r(37),o=r(4).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function f(t,e,r){return r^t&(e^r)}function c(t,e,r){return t&e|r&(t|e)}function h(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function d(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function l(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function b(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function y(t,e){return t>>>0>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,v=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,A=0|this._dl,S=0|this._el,M=0|this._fl,E=0|this._gl,x=0|this._hl,I=0;I<32;I+=2)e[I]=t.readInt32BE(4*I),e[I+1]=t.readInt32BE(4*I+4);for(;I<160;I+=2){var O=e[I-30],P=e[I-30+1],C=l(O,P),B=p(P,O),T=b(O=e[I-4],P=e[I-4+1]),R=m(P,O),U=e[I-14],N=e[I-14+1],j=e[I-32],L=e[I-32+1],F=B+N|0,D=C+U+y(F,B)|0;D=(D=D+T+y(F=F+R|0,R)|0)+j+y(F=F+L|0,L)|0,e[I]=D,e[I+1]=F}for(var q=0;q<160;q+=2){D=e[q],F=e[q+1];var z=c(r,n,i),H=c(w,_,k),K=h(r,w),V=h(w,r),G=d(s,S),W=d(S,s),Y=a[q],$=a[q+1],J=f(s,u,v),Z=f(S,M,E),X=x+W|0,Q=g+G+y(X,x)|0;Q=(Q=(Q=Q+J+y(X=X+Z|0,Z)|0)+Y+y(X=X+$|0,$)|0)+D+y(X=X+F|0,F)|0;var tt=V+H|0,et=K+z+y(tt,V)|0;g=v,x=E,v=u,E=M,u=s,M=S,s=o+Q+y(S=A+X|0,A)|0,o=i,A=k,i=n,k=_,n=r,_=w,r=Q+et+y(w=X+tt|0,X)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+A|0,this._el=this._el+S|0,this._fl=this._fl+M|0,this._gl=this._gl+E|0,this._hl=this._hl+x|0,this._ah=this._ah+r+y(this._al,w)|0,this._bh=this._bh+n+y(this._bl,_)|0,this._ch=this._ch+i+y(this._cl,k)|0,this._dh=this._dh+o+y(this._dl,A)|0,this._eh=this._eh+s+y(this._el,S)|0,this._fh=this._fh+u+y(this._fl,M)|0,this._gh=this._gh+v+y(this._gl,E)|0,this._hh=this._hh+g+y(this._hl,x)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},function(t,e,r){"use strict";var n=r(3),i=r(351),o=r(28),a=r(4).Buffer,s=r(148),u=r(85),f=r(86),c=a.alloc(128);function h(t,e){o.call(this,"digest"),"string"==typeof e&&(e=a.from(e));var r="sha512"===t||"sha384"===t?128:64;(this._alg=t,this._key=e,e.length>r)?e=("rmd160"===t?new u:f(t)).update(e).digest():e.lengthr||o!=o)throw new TypeError("Bad key length")}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";(function(e){var r;e.browser?r="utf-8":r=parseInt(e.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";t.exports=r}).call(this,r(12))},function(t,e,r){"use strict";var n=r(148),i=r(85),o=r(86),a=r(151),s=r(152),u=r(4).Buffer,f=u.alloc(128),c={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function h(t,e,r){var a=function(t){function e(e){return o(t).update(e).digest()}return"rmd160"===t||"ripemd160"===t?function(t){return(new i).update(t).digest()}:"md5"===t?n:e}(t),s="sha512"===t||"sha384"===t?128:64;e.length>s?e=a(e):e.lengtht;)r.ishrn(1);if(r.isEven()&&r.iadd(s),r.testn(1)||r.iadd(u),e.cmp(u)){if(!e.cmp(f))for(;r.mod(c).cmp(h);)r.iadd(l)}else for(;r.mod(o).cmp(d);)r.iadd(l);if(m(p=r.shrn(1))&&m(r)&&y(p)&&y(r)&&a.test(p)&&a.test(r))return r}}},function(t,e,r){"use strict";var n=r(5),i=r(90);function o(t){this.rand=t||new i.Rand}t.exports=o,o.create=function(t){return new o(t)},o.prototype._randbelow=function(t){var e=t.bitLength(),r=Math.ceil(e/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(t)>=0);return i},o.prototype._randrange=function(t,e){var r=e.sub(t);return t.add(this._randbelow(r))},o.prototype.test=function(t,e,r){var i=t.bitLength(),o=n.mont(t),a=new n(1).toRed(o);e||(e=Math.max(1,i/48|0));for(var s=t.subn(1),u=0;!s.testn(u);u++);for(var f=t.shrn(u),c=s.toRed(o);e>0;e--){var h=this._randrange(new n(2),s);r&&r(h);var d=h.toRed(o).redPow(f);if(0!==d.cmp(a)&&0!==d.cmp(c)){for(var l=1;l0;e--){var c=this._randrange(new n(2),a),h=t.gcd(c);if(0!==h.cmpn(1))return h;var d=c.toRed(i).redPow(u);if(0!==d.cmp(o)&&0!==d.cmp(f)){for(var l=1;l>8,a=255&i;o?r.push(o,a):r.push(a)}return r},n.zero2=i,n.toHex=o,n.encode=function(t,e){return"hex"===e?o(t):t}},function(t,e,r){"use strict";var n=e;n.base=r(67),n.short=r(378),n.mont=r(379),n.edwards=r(380)},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(3),o=r(50).Reporter,a=r(2).Buffer;function s(t,e){o.call(this,e),a.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function u(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return t instanceof u||(t=new u(t,e)),this.length+=t.length,t}),this);else if("number"==typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"==typeof t)this.value=t,this.length=a.byteLength(t);else{if(!a.isBuffer(t))return e.error("Unsupported type: "+(0,n.default)(t));this.value=t,this.length=t.length}}i(s,o),e.DecoderBuffer=s,s.prototype.save=function(){return{offset:this.offset,reporter:o.prototype.save.call(this)}},s.prototype.restore=function(t){var e=new s(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,o.prototype.restore.call(this,t.reporter),e},s.prototype.isEmpty=function(){return this.offset===this.length},s.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},s.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");var r=new s(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},s.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.EncoderBuffer=u,u.prototype.join=function(t,e){return t||(t=new a(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):("number"==typeof this.value?t[e]=this.value:"string"==typeof this.value?t.write(this.value,e):a.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},function(t,e,r){"use strict";var n=e;n._reverse=function(t){var e={};return Object.keys(t).forEach((function(r){(0|r)==r&&(r|=0);var n=t[r];e[n]=r})),e},n.der=r(394)},function(t,e,r){"use strict";var n=r(3),i=r(49),o=i.base,a=i.bignum,s=i.constants.der;function u(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new f,this.tree._init(t.body)}function f(t){o.Node.call(this,"der",t)}function c(t,e){var r=t.readUInt8(e);if(t.isError(r))return r;var n=s.tagClass[r>>6],i=0==(32&r);if(31==(31&r)){var o=r;for(r=0;128==(128&o);){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}else r&=31;return{cls:n,primitive:i,tag:r,tagStr:s.tag[r]}}function h(t,e,r){var n=t.readUInt8(r);if(t.isError(n))return n;if(!e&&128===n)return null;if(0==(128&n))return n;var i=127&n;if(i>4)return t.error("length octect is too long");n=0;for(var o=0;o=31)return n.error("Multi-octet tag encoding unsupported");e||(i|=32);return i|=s.tagClassByName[r||"universal"]<<6}(t,e,r,this.reporter);if(n.length<128)return(o=new i(2))[0]=a,o[1]=n.length,this._createEncoderBuffer([o,n]);for(var u=1,f=n.length;f>=256;f>>=8)u++;(o=new i(2+u))[0]=a,o[1]=128|u;f=1+u;for(var c=n.length;c>0;f--,c>>=8)o[f]=255&c;return this._createEncoderBuffer([o,n])},f.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var r=new i(2*t.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}var o=0;for(n=0;n=128;a>>=7)o++}var s=new i(o),u=s.length-1;for(n=t.length-1;n>=0;n--){a=t[n];for(s[u--]=127&a;(a>>=7)>0;)s[u--]=128|127&a}return this._createEncoderBuffer(s)},f.prototype._encodeTime=function(t,e){var r,n=new Date(t);return"gentime"===e?r=[c(n.getFullYear()),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?r=[c(n.getFullYear()%100),c(n.getUTCMonth()+1),c(n.getUTCDate()),c(n.getUTCHours()),c(n.getUTCMinutes()),c(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(r,"octstr")},f.prototype._encodeNull=function(){return this._createEncoderBuffer("")},f.prototype._encodeInt=function(t,e){if("string"==typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!=typeof t&&!i.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=new i(r)}if(i.isBuffer(t)){var n=t.length;0===t.length&&n++;var o=new i(n);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);n=1;for(var a=t;a>=256;a>>=8)n++;for(a=(o=new Array(n)).length-1;a>=0;a--)o[a]=255&t,t>>=8;return 128&o[0]&&o.unshift(0),this._createEncoderBuffer(new i(o))},f.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},f.prototype._use=function(t,e){return"function"==typeof t&&(t=t(e)),t._getEncoder("der").tree},f.prototype._skipDefault=function(t,e,r){var n,i=this._baseState;if(null===i.default)return!1;var o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,e,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n="80"?r(n.length/2,128):"")+n}var i=e.map(t).join("");return r(i.length/2,192)+i}(t)},decode:function(t){var e=2,r=function(){if(e>=t.length)throw"";var r=t.slice(e,e+2);return r<"80"?(e+=2,"0x"+r):r<"c0"?i():o()},n=function(){var r=parseInt(t.slice(e,e+=2),16)%64;return r<56?r:parseInt(t.slice(e,e+=2*(r-55)),16)},i=function(){var r=n();return"0x"+t.slice(e,e+=2*r)},o=function(){for(var t=2*n()+e,i=[];e>>((3&e)<<3)&255;return o}}},function(t,e,r){"use strict";for(var n=[],i=0;i<256;++i)n[i]=(i+256).toString(16).substr(1);t.exports=function(t,e){var r=e||0,i=n;return[i[t[r++]],i[t[r++]],i[t[r++]],i[t[r++]],"-",i[t[r++]],i[t[r++]],"-",i[t[r++]],i[t[r++]],"-",i[t[r++]],i[t[r++]],"-",i[t[r++]],i[t[r++]],i[t[r++]],i[t[r++]],i[t[r++]],i[t[r++]]].join("")}},function(t,e,r){"use strict";var n=function(){return(n=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=2*this.getChainId()+35&&this._common.gteHardfork("spuriousDragon");this._senderPubKey=i.ecrecover(t,e,this.r,this.s,r?this.getChainId():void 0)}catch(t){return!1}return!!this._senderPubKey},t.prototype.sign=function(t){this.v=new a.Buffer([]),this.s=new a.Buffer([]),this.r=new a.Buffer([]);var e=this.hash(!1),r=i.ecsign(e,t);this._implementsEIP155()&&(r.v+=2*this.getChainId()+8),Object.assign(this,r)},t.prototype.getDataFee=function(){for(var t=this.raw[5],e=new i.BN(0),r=0;r0&&e.push(["gas limit is too low. Need at least "+this.getBaseFee()]),!1===t?0===e.length:e.join(" ")},t.prototype.serialize=function(){return i.rlp.encode(this.raw)},t.prototype.toJSON=function(t){return void 0===t&&(t=!1),{}},t.prototype._validateV=function(t){if(void 0!==t&&0!==t.length&&this._common.gteHardfork("spuriousDragon")){var e=i.bufferToInt(t);if(27!==e&&28!==e)if(!(e===2*this.getChainId()+35||e===2*this.getChainId()+36))throw new Error("Incompatible EIP155-based V "+e+" and chain id "+this.getChainId()+". See the second parameter of the Transaction constructor to set the chain id.")}},t.prototype._isSigned=function(){return this.v.length>0&&this.r.length>0&&this.s.length>0},t.prototype._overrideVSetterWithValidation=function(){var t=this,e=Object.getOwnPropertyDescriptor(this,"v");Object.defineProperty(this,"v",n({},e,{set:function(r){void 0!==r&&t._validateV(i.toBuffer(r)),e.set(r)}}))},t.prototype._implementsEIP155=function(){var t=this._common.gteHardfork("spuriousDragon");if(!this._isSigned())return t;var e=i.bufferToInt(this.v);return(e===2*this.getChainId()+35||e===2*this.getChainId()+36)&&t},t}();e.default=u},function(t,e,r){"use strict";function n(t){for(var r in t)e.hasOwnProperty(r)||(e[r]=t[r])}Object.defineProperty(e,"__esModule",{value:!0});var i=r(93);e.secp256k1=i;var o=r(52),a=r(15);e.BN=a;var s=r(96);e.rlp=s,Object.assign(e,o),n(r(449)),n(r(450)),n(r(98)),n(r(457)),n(r(53)),n(r(458))},function(t){t.exports=JSON.parse('{"COMPRESSED_TYPE_INVALID":"compressed should be a boolean","EC_PRIVATE_KEY_TYPE_INVALID":"private key should be a Buffer","EC_PRIVATE_KEY_LENGTH_INVALID":"private key length is invalid","EC_PRIVATE_KEY_RANGE_INVALID":"private key range is invalid","EC_PRIVATE_KEY_TWEAK_ADD_FAIL":"tweak out of range or resulting private key is invalid","EC_PRIVATE_KEY_TWEAK_MUL_FAIL":"tweak out of range","EC_PRIVATE_KEY_EXPORT_DER_FAIL":"couldn\'t export to DER format","EC_PRIVATE_KEY_IMPORT_DER_FAIL":"couldn\'t import from DER format","EC_PUBLIC_KEYS_TYPE_INVALID":"public keys should be an Array","EC_PUBLIC_KEYS_LENGTH_INVALID":"public keys Array should have at least 1 element","EC_PUBLIC_KEY_TYPE_INVALID":"public key should be a Buffer","EC_PUBLIC_KEY_LENGTH_INVALID":"public key length is invalid","EC_PUBLIC_KEY_PARSE_FAIL":"the public key could not be parsed or is invalid","EC_PUBLIC_KEY_CREATE_FAIL":"private was invalid, try again","EC_PUBLIC_KEY_TWEAK_ADD_FAIL":"tweak out of range or resulting public key is invalid","EC_PUBLIC_KEY_TWEAK_MUL_FAIL":"tweak out of range","EC_PUBLIC_KEY_COMBINE_FAIL":"the sum of the public keys is not valid","ECDH_FAIL":"scalar was invalid (zero or overflow)","ECDSA_SIGNATURE_TYPE_INVALID":"signature should be a Buffer","ECDSA_SIGNATURE_LENGTH_INVALID":"signature length is invalid","ECDSA_SIGNATURE_PARSE_FAIL":"couldn\'t parse signature","ECDSA_SIGNATURE_PARSE_DER_FAIL":"couldn\'t parse DER signature","ECDSA_SIGNATURE_SERIALIZE_DER_FAIL":"couldn\'t serialize signature to DER format","ECDSA_SIGN_FAIL":"nonce generation function failed or private key is invalid","ECDSA_RECOVER_FAIL":"couldn\'t recover public key from signature","MSG32_TYPE_INVALID":"message should be a Buffer","MSG32_LENGTH_INVALID":"message length is invalid","OPTIONS_TYPE_INVALID":"options should be an Object","OPTIONS_DATA_TYPE_INVALID":"options.data should be a Buffer","OPTIONS_DATA_LENGTH_INVALID":"options.data length is invalid","OPTIONS_NONCEFN_TYPE_INVALID":"options.noncefn should be a Function","RECOVERY_ID_TYPE_INVALID":"recovery should be a Number","RECOVERY_ID_VALUE_INVALID":"recovery should have value between -1 and 4","TWEAK_TYPE_INVALID":"tweak should be a Buffer","TWEAK_LENGTH_INVALID":"tweak length is invalid"}')},function(t,e,r){"use strict";var n=r(11),i=r(419),o=r(420),a=r(421),s=r(426);function u(t){s.call(this,"digest"),this._hash=t}n(u,s),u.prototype._update=function(t){this._hash.update(t)},u.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return"md5"===(t=t.toLowerCase())?new i:"rmd160"===t||"ripemd160"===t?new o:new u(a(t))}},function(t,e,r){"use strict";var n=r(14).Buffer,i=r(34).Transform;function o(t){i.call(this),this._block=n.allocUnsafe(t),this._blockSize=t,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}r(11)(o,i),o.prototype._transform=function(t,e,r){var n=null;try{this.update(t,e)}catch(t){n=t}r(n)},o.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},o.prototype.update=function(t,e){if(function(t,e){if(!n.isBuffer(t)&&"string"!=typeof t)throw new TypeError(e+" must be a string or a buffer")}(t,"Data"),this._finalized)throw new Error("Digest already called");n.isBuffer(t)||(t=n.from(t,e));for(var r=this._block,i=0;this._blockOffset+t.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++a)this._length[a]+=s,(s=this._length[a]/4294967296|0)>0&&(this._length[a]-=4294967296*s);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},o.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=o},function(t,e,r){"use strict";var n=r(11),i=r(38),o=r(14).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}function f(t,e,r){return r^t&(e^r)}function c(t,e,r){return t&e|r&(t|e)}function h(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function d(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function l(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}n(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,p=0|this._f,b=0|this._g,m=0|this._h,y=0;y<16;++y)r[y]=t.readInt32BE(4*y);for(;y<64;++y)r[y]=0|(((e=r[y-2])>>>17|e<<15)^(e>>>19|e<<13)^e>>>10)+r[y-7]+l(r[y-15])+r[y-16];for(var v=0;v<64;++v){var g=m+d(u)+f(u,p,b)+a[v]+r[v]|0,w=h(n)+c(n,i,o)|0;m=b,b=p,p=u,u=s+g|0,s=o,o=i,i=n,n=g+w|0}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=p+this._f|0,this._g=b+this._g|0,this._h=m+this._h|0},u.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=u},function(t,e,r){"use strict";var n=r(11),i=r(38),o=r(14).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function f(t,e,r){return r^t&(e^r)}function c(t,e,r){return t&e|r&(t|e)}function h(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function d(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function l(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function b(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function y(t,e){return t>>>0>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,v=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,A=0|this._dl,S=0|this._el,M=0|this._fl,E=0|this._gl,x=0|this._hl,I=0;I<32;I+=2)e[I]=t.readInt32BE(4*I),e[I+1]=t.readInt32BE(4*I+4);for(;I<160;I+=2){var O=e[I-30],P=e[I-30+1],C=l(O,P),B=p(P,O),T=b(O=e[I-4],P=e[I-4+1]),R=m(P,O),U=e[I-14],N=e[I-14+1],j=e[I-32],L=e[I-32+1],F=B+N|0,D=C+U+y(F,B)|0;D=(D=D+T+y(F=F+R|0,R)|0)+j+y(F=F+L|0,L)|0,e[I]=D,e[I+1]=F}for(var q=0;q<160;q+=2){D=e[q],F=e[q+1];var z=c(r,n,i),H=c(w,_,k),K=h(r,w),V=h(w,r),G=d(s,S),W=d(S,s),Y=a[q],$=a[q+1],J=f(s,u,v),Z=f(S,M,E),X=x+W|0,Q=g+G+y(X,x)|0;Q=(Q=(Q=Q+J+y(X=X+Z|0,Z)|0)+Y+y(X=X+$|0,$)|0)+D+y(X=X+F|0,F)|0;var tt=V+H|0,et=K+z+y(tt,V)|0;g=v,x=E,v=u,E=M,u=s,M=S,s=o+Q+y(S=A+X|0,A)|0,o=i,A=k,i=n,k=_,n=r,_=w,r=Q+et+y(w=X+tt|0,X)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+A|0,this._el=this._el+S|0,this._fl=this._fl+M|0,this._gl=this._gl+E|0,this._hl=this._hl+x|0,this._ah=this._ah+r+y(this._al,w)|0,this._bh=this._bh+n+y(this._bl,_)|0,this._ch=this._ch+i+y(this._cl,k)|0,this._dh=this._dh+o+y(this._dl,A)|0,this._eh=this._eh+s+y(this._el,S)|0,this._fh=this._fh+u+y(this._fl,M)|0,this._gh=this._gh+v+y(this._gl,E)|0,this._hh=this._hh+g+y(this._hl,x)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},function(t,e,r){"use strict";var n=e;function i(t){return 1===t.length?"0"+t:t}function o(t){for(var e="",r=0;r>8,a=255&i;o?r.push(o,a):r.push(a)}return r},n.zero2=i,n.toHex=o,n.encode=function(t,e){return"hex"===e?o(t):t}},function(t,e,r){"use strict";var n,i=r(0)(r(1));function o(t){this.rand=t}if(t.exports=function(t){return n||(n=new o(null)),n.generate(t)},t.exports.Rand=o,o.prototype.generate=function(t){return this._rand(t)},o.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r>>3},e.g1_256=function(t){return n(t,17)^n(t,19)^t>>>10}},function(t,e,r){"use strict";var n=r(27),i=r(51),o=r(184),a=r(35),s=n.sum32,u=n.sum32_4,f=n.sum32_5,c=o.ch32,h=o.maj32,d=o.s0_256,l=o.s1_256,p=o.g0_256,b=o.g1_256,m=i.BlockHash,y=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function v(){if(!(this instanceof v))return new v;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=y,this.W=new Array(64)}n.inherits(v,m),t.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;n * @license MIT */ -function o(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r,n);i=0;f--)if(c[f]!==h[f])return!1;for(f=c.length-1;f>=0;f--)if(a=c[f],!w(e[a],t[a],r,n))return!1;return!0}(e,t,r,i))}return r?e===t:e==t}function _(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function k(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function A(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&y(i,r,"Missing expected exception"+n);var o="string"==typeof n,a=!e&&i&&!r;if((!e&&s.isError(i)&&o&&k(i,r)||a)&&y(i,r,"Got unwanted exception"+n),e&&i&&r&&!k(i,r)||!e&&i)throw i}l.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return m(v(e.actual),128)+" "+e.operator+" "+m(v(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||y;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=b(t),o=n.indexOf("\n"+i);if(o>=0){var a=n.indexOf("\n",o+1);n=n.substring(a+1)}this.stack=n}}},s.inherits(l.AssertionError,Error),l.fail=y,l.ok=g,l.equal=function(e,t,r){e!=t&&y(e,t,r,"==",l.equal)},l.notEqual=function(e,t,r){e==t&&y(e,t,r,"!=",l.notEqual)},l.deepEqual=function(e,t,r){w(e,t,!1)||y(e,t,r,"deepEqual",l.deepEqual)},l.deepStrictEqual=function(e,t,r){w(e,t,!0)||y(e,t,r,"deepStrictEqual",l.deepStrictEqual)},l.notDeepEqual=function(e,t,r){w(e,t,!1)&&y(e,t,r,"notDeepEqual",l.notDeepEqual)},l.notDeepStrictEqual=function e(t,r,n){w(t,r,!0)&&y(t,r,n,"notDeepStrictEqual",e)},l.strictEqual=function(e,t,r){e!==t&&y(e,t,r,"===",l.strictEqual)},l.notStrictEqual=function(e,t,r){e===t&&y(e,t,r,"!==",l.notStrictEqual)},l.throws=function(e,t,r){A(!0,e,t,r)},l.doesNotThrow=function(e,t,r){A(!1,e,t,r)},l.ifError=function(e){if(e)throw e},l.strict=i((function e(t,r){t||y(t,!0,r,"==",e)}),l,{equal:l.strictEqual,deepEqual:l.deepStrictEqual,notEqual:l.notStrictEqual,notDeepEqual:l.notDeepStrictEqual}),l.strict.strict=l.strict;var S=Object.keys||function(e){var t=[];for(var r in e)f.call(e,r)&&t.push(r);return t}}).call(this,r(8))},function(e,t,r){"use strict";var n=r(0)(r(1)),i=function(){return(i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0))return!0;for(var t=0,r=this._supportedHardforks;t=i},e.prototype.activeOnBlock=function(e,t){return this.hardforkIsActiveOnBlock(null,e,t)},e.prototype.hardforkGteHardfork=function(e,t,r){var n=void 0!==(r=void 0!==r?r:{}).onlyActive&&r.onlyActive;e=this._chooseHardfork(e,r.onlySupported);for(var i=-1,o=-1,a=0,s=0,f=n?this.activeHardforks(null,r):this.hardforks();s=o},e.prototype.gteHardfork=function(e,t){return this.hardforkGteHardfork(null,e,t)},e.prototype.hardforkIsActiveOnChain=function(e,t){var r=void 0!==(t=void 0!==t?t:{}).onlySupported&&t.onlySupported;e=this._chooseHardfork(e,r);for(var n=0,i=this.hardforks();n0)return r[r.length-1].name;throw new Error("No (supported) active hardfork found")},e.prototype.hardforkBlock=function(e){return e=this._chooseHardfork(e,!1),this._getHardfork(e).block},e.prototype.isHardforkBlock=function(e,t){return t=this._chooseHardfork(t,!1),this.hardforkBlock(t)===e},e.prototype.consensus=function(e){return e=this._chooseHardfork(e),this._getHardfork(e).consensus},e.prototype.finality=function(e){return e=this._chooseHardfork(e),this._getHardfork(e).finality},e.prototype.genesis=function(){return this._chainParams.genesis},e.prototype.hardforks=function(){return this._chainParams.hardforks},e.prototype.bootstrapNodes=function(){return this._chainParams.bootstrapNodes},e.prototype.hardfork=function(){return this._hardfork},e.prototype.chainId=function(){return this._chainParams.chainId},e.prototype.chainName=function(){return o.chains.names[this.chainId()]||this._chainParams.name},e.prototype.networkId=function(){return this._chainParams.networkId},e}();t.default=s},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(536),o="function"==typeof Symbol&&"symbol"===(0,n.default)(Symbol("foo")),a=Object.prototype.toString,s=Array.prototype.concat,f=Object.defineProperty,u=f&&function(){var e={};try{for(var t in f(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),c=function(e,t,r,n){var i;(!(t in e)||"function"==typeof(i=n)&&"[object Function]"===a.call(i)&&n())&&(u?f(e,t,{configurable:!0,enumerable:!1,value:r,writable:!0}):e[t]=r)},h=function(e,t){var r=arguments.length>2?arguments[2]:{},n=i(t);o&&(n=s.call(n,Object.getOwnPropertySymbols(t)));for(var a=0;a=0&&"[object Function]"===i.call(e.callee)),r}},function(e,t,r){"use strict";var n=r(105),i=r(538),o=n.call(Function.call,String.prototype.replace),a=/^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/,s=/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/;e.exports=function(){var e=i.ToString(i.CheckObjectCoercible(this));return o(o(e,a,""),s,"")}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=Object.getOwnPropertyDescriptor?function(){return Object.getOwnPropertyDescriptor(arguments,"callee").get}():function(){throw new TypeError},o="function"==typeof Symbol&&"symbol"===(0,n.default)(Symbol.iterator),a=Object.getPrototypeOf||function(e){return e.__proto__},s=void 0,f="undefined"==typeof Uint8Array?void 0:a(Uint8Array),u={"$ %Array%":Array,"$ %ArrayBuffer%":"undefined"==typeof ArrayBuffer?void 0:ArrayBuffer,"$ %ArrayBufferPrototype%":"undefined"==typeof ArrayBuffer?void 0:ArrayBuffer.prototype,"$ %ArrayIteratorPrototype%":o?a([][Symbol.iterator]()):void 0,"$ %ArrayPrototype%":Array.prototype,"$ %ArrayProto_entries%":Array.prototype.entries,"$ %ArrayProto_forEach%":Array.prototype.forEach,"$ %ArrayProto_keys%":Array.prototype.keys,"$ %ArrayProto_values%":Array.prototype.values,"$ %AsyncFromSyncIteratorPrototype%":void 0,"$ %AsyncFunction%":void 0,"$ %AsyncFunctionPrototype%":void 0,"$ %AsyncGenerator%":void 0,"$ %AsyncGeneratorFunction%":void 0,"$ %AsyncGeneratorPrototype%":void 0,"$ %AsyncIteratorPrototype%":s&&o&&Symbol.asyncIterator?s[Symbol.asyncIterator]():void 0,"$ %Atomics%":"undefined"==typeof Atomics?void 0:Atomics,"$ %Boolean%":Boolean,"$ %BooleanPrototype%":Boolean.prototype,"$ %DataView%":"undefined"==typeof DataView?void 0:DataView,"$ %DataViewPrototype%":"undefined"==typeof DataView?void 0:DataView.prototype,"$ %Date%":Date,"$ %DatePrototype%":Date.prototype,"$ %decodeURI%":decodeURI,"$ %decodeURIComponent%":decodeURIComponent,"$ %encodeURI%":encodeURI,"$ %encodeURIComponent%":encodeURIComponent,"$ %Error%":Error,"$ %ErrorPrototype%":Error.prototype,"$ %eval%":eval,"$ %EvalError%":EvalError,"$ %EvalErrorPrototype%":EvalError.prototype,"$ %Float32Array%":"undefined"==typeof Float32Array?void 0:Float32Array,"$ %Float32ArrayPrototype%":"undefined"==typeof Float32Array?void 0:Float32Array.prototype,"$ %Float64Array%":"undefined"==typeof Float64Array?void 0:Float64Array,"$ %Float64ArrayPrototype%":"undefined"==typeof Float64Array?void 0:Float64Array.prototype,"$ %Function%":Function,"$ %FunctionPrototype%":Function.prototype,"$ %Generator%":void 0,"$ %GeneratorFunction%":void 0,"$ %GeneratorPrototype%":void 0,"$ %Int8Array%":"undefined"==typeof Int8Array?void 0:Int8Array,"$ %Int8ArrayPrototype%":"undefined"==typeof Int8Array?void 0:Int8Array.prototype,"$ %Int16Array%":"undefined"==typeof Int16Array?void 0:Int16Array,"$ %Int16ArrayPrototype%":"undefined"==typeof Int16Array?void 0:Int8Array.prototype,"$ %Int32Array%":"undefined"==typeof Int32Array?void 0:Int32Array,"$ %Int32ArrayPrototype%":"undefined"==typeof Int32Array?void 0:Int32Array.prototype,"$ %isFinite%":isFinite,"$ %isNaN%":isNaN,"$ %IteratorPrototype%":o?a(a([][Symbol.iterator]())):void 0,"$ %JSON%":JSON,"$ %JSONParse%":JSON.parse,"$ %Map%":"undefined"==typeof Map?void 0:Map,"$ %MapIteratorPrototype%":"undefined"!=typeof Map&&o?a((new Map)[Symbol.iterator]()):void 0,"$ %MapPrototype%":"undefined"==typeof Map?void 0:Map.prototype,"$ %Math%":Math,"$ %Number%":Number,"$ %NumberPrototype%":Number.prototype,"$ %Object%":Object,"$ %ObjectPrototype%":Object.prototype,"$ %ObjProto_toString%":Object.prototype.toString,"$ %ObjProto_valueOf%":Object.prototype.valueOf,"$ %parseFloat%":parseFloat,"$ %parseInt%":parseInt,"$ %Promise%":"undefined"==typeof Promise?void 0:Promise,"$ %PromisePrototype%":"undefined"==typeof Promise?void 0:Promise.prototype,"$ %PromiseProto_then%":"undefined"==typeof Promise?void 0:Promise.prototype.then,"$ %Promise_all%":"undefined"==typeof Promise?void 0:Promise.all,"$ %Promise_reject%":"undefined"==typeof Promise?void 0:Promise.reject,"$ %Promise_resolve%":"undefined"==typeof Promise?void 0:Promise.resolve,"$ %Proxy%":"undefined"==typeof Proxy?void 0:Proxy,"$ %RangeError%":RangeError,"$ %RangeErrorPrototype%":RangeError.prototype,"$ %ReferenceError%":ReferenceError,"$ %ReferenceErrorPrototype%":ReferenceError.prototype,"$ %Reflect%":"undefined"==typeof Reflect?void 0:Reflect,"$ %RegExp%":RegExp,"$ %RegExpPrototype%":RegExp.prototype,"$ %Set%":"undefined"==typeof Set?void 0:Set,"$ %SetIteratorPrototype%":"undefined"!=typeof Set&&o?a((new Set)[Symbol.iterator]()):void 0,"$ %SetPrototype%":"undefined"==typeof Set?void 0:Set.prototype,"$ %SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,"$ %SharedArrayBufferPrototype%":"undefined"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer.prototype,"$ %String%":String,"$ %StringIteratorPrototype%":o?a(""[Symbol.iterator]()):void 0,"$ %StringPrototype%":String.prototype,"$ %Symbol%":o?Symbol:void 0,"$ %SymbolPrototype%":o?Symbol.prototype:void 0,"$ %SyntaxError%":SyntaxError,"$ %SyntaxErrorPrototype%":SyntaxError.prototype,"$ %ThrowTypeError%":i,"$ %TypedArray%":f,"$ %TypedArrayPrototype%":f?f.prototype:void 0,"$ %TypeError%":TypeError,"$ %TypeErrorPrototype%":TypeError.prototype,"$ %Uint8Array%":"undefined"==typeof Uint8Array?void 0:Uint8Array,"$ %Uint8ArrayPrototype%":"undefined"==typeof Uint8Array?void 0:Uint8Array.prototype,"$ %Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,"$ %Uint8ClampedArrayPrototype%":"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray.prototype,"$ %Uint16Array%":"undefined"==typeof Uint16Array?void 0:Uint16Array,"$ %Uint16ArrayPrototype%":"undefined"==typeof Uint16Array?void 0:Uint16Array.prototype,"$ %Uint32Array%":"undefined"==typeof Uint32Array?void 0:Uint32Array,"$ %Uint32ArrayPrototype%":"undefined"==typeof Uint32Array?void 0:Uint32Array.prototype,"$ %URIError%":URIError,"$ %URIErrorPrototype%":URIError.prototype,"$ %WeakMap%":"undefined"==typeof WeakMap?void 0:WeakMap,"$ %WeakMapPrototype%":"undefined"==typeof WeakMap?void 0:WeakMap.prototype,"$ %WeakSet%":"undefined"==typeof WeakSet?void 0:WeakSet,"$ %WeakSetPrototype%":"undefined"==typeof WeakSet?void 0:WeakSet.prototype};e.exports=function(e,t){if(arguments.length>1&&"boolean"!=typeof t)throw new TypeError('"allowMissing" argument must be a boolean');var r="$ "+e;if(!(r in u))throw new SyntaxError("intrinsic "+e+" does not exist!");if(void 0===u[r]&&!t)throw new TypeError("intrinsic "+e+" exists, but is not available. Please file an issue!");return u[r]}},function(e,t,r){"use strict";var n=r(105);e.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},function(e,t,r){"use strict";var n=r(208);e.exports=function(){return String.prototype.trim&&"​"==="​".trim()?String.prototype.trim:n}},function(e,t,r){"use strict";r(549);var n=function(e,t){return parseInt(e.slice(2*t+2,2*t+4),16)},i=function(e){return(e.length-2)/2},o=function(e){for(var t=[],r=2,n=e.length;r>6|192);else{if(i>55295&&i<56320){if(++n==e.length)return null;var o=e.charCodeAt(n);if(o<56320||o>57343)return null;r+=t((i=65536+((1023&i)<<10)+(1023&o))>>18|240),r+=t(i>>12&63|128)}else r+=t(i>>12|224);r+=t(i>>6&63|128)}r+=t(63&i|128)}}return r},toString:function(e){for(var t="",r=0,o=i(e);r127){if(a>191&&a<224){if(r>=o)return null;a=(31&a)<<6|63&n(e,r)}else if(a>223&&a<240){if(r+1>=o)return null;a=(15&a)<<12|(63&n(e,r))<<6|63&n(e,++r)}else{if(!(a>239&&a<248))return null;if(r+2>=o)return null;a=(7&a)<<18|(63&n(e,r))<<12|(63&n(e,++r))<<6|63&n(e,++r)}++r}if(a<=65535)t+=String.fromCharCode(a);else{if(!(a<=1114111))return null;a-=65536,t+=String.fromCharCode(a>>10|55296),t+=String.fromCharCode(1023&a|56320)}}return t},fromNumber:function(e){var t=e.toString(16);return t.length%2==0?"0x"+t:"0x0"+t},toNumber:function(e){return parseInt(e.slice(2),16)},fromNat:function(e){return"0x0"===e?"0x":e.length%2==0?e:"0x0"+e.slice(2)},toNat:function(e){return"0"===e[2]?"0x"+e.slice(3):e},fromArray:a,toArray:o,fromUint8Array:function(e){return a([].slice.call(e,0))},toUint8Array:function(e){return new Uint8Array(o(e))}}},function(e,t,r){"use strict";var n=r(214).version,i=r(31),o=r(300),a=r(64),s=r(160),f=r(520),u=r(521),c=r(17),h=function(){var e=this;i.packageInit(this,arguments),this.version=n,this.utils=c,this.eth=new o(this),this.shh=new f(this),this.bzz=new u(this);var t=this.setProvider;this.setProvider=function(r,n){return t.apply(e,arguments),e.eth.setRequestManager(e._requestManager),e.shh.setRequestManager(e._requestManager),e.bzz.setProvider(r),!0}};h.version=n,h.utils=c,h.modules={Eth:o,Net:a,Personal:s,Shh:f,Bzz:u},i.addProviders(h),e.exports=h},function(e){e.exports=JSON.parse('{"name":"web3","version":"1.3.1-rc.0","description":"Ethereum JavaScript API","repository":"https://github.com/ethereum/web3.js","license":"LGPL-3.0","engines":{"node":">=8.0.0"},"main":"lib/index.js","bugs":{"url":"https://github.com/ethereum/web3.js/issues"},"keywords":["Ethereum","JavaScript","API"],"author":"ethereum.org","types":"types/index.d.ts","scripts":{"tsc":"tsc -b tsconfig.json","dtslint":"dtslint --localTs ../../node_modules/typescript/lib types"},"authors":[{"name":"Fabian Vogelsteller","email":"fabian@ethereum.org","homepage":"http://frozeman.de"},{"name":"Marek Kotewicz","email":"marek@parity.io","url":"https://github.com/debris"},{"name":"Marian Oancea","url":"https://github.com/cubedro"},{"name":"Gav Wood","email":"g@parity.io","homepage":"http://gavwood.com"},{"name":"Jeffery Wilcke","email":"jeffrey.wilcke@ethereum.org","url":"https://github.com/obscuren"}],"dependencies":{"web3-bzz":"1.3.1-rc.0","web3-core":"1.3.1-rc.0","web3-eth":"1.3.1-rc.0","web3-eth-personal":"1.3.1-rc.0","web3-net":"1.3.1-rc.0","web3-shh":"1.3.1-rc.0","web3-utils":"1.3.1-rc.0"},"devDependencies":{"@types/node":"^12.12.6","dtslint":"^3.4.1","typescript":"^3.9.5"}}')},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(107).callbackify,o=r(11),a=r(10).errors,s=r(113),f=r(232),u=r(233),c=function e(t,r){this.provider=null,this.providers=e.providers,this.setProvider(t,r),this.subscriptions=new Map};c.givenProvider=u,c.providers={WebsocketProvider:r(234),HttpProvider:r(244),IpcProvider:r(262)},c.prototype.setProvider=function(e,t){var r=this;if(e&&"string"==typeof e&&this.providers)if(/^http(s)?:\/\//i.test(e))e=new this.providers.HttpProvider(e);else if(/^ws(s)?:\/\//i.test(e))e=new this.providers.WebsocketProvider(e);else if(e&&"object"===(0,n.default)(t)&&"function"==typeof t.connect)e=new this.providers.IpcProvider(e,t);else if(e)throw new Error("Can't autodetect provider for \""+e+'"');this.provider&&this.provider.connected&&this.clearSubscriptions(),this.provider=e||null,this.provider&&this.provider.on&&(this.provider.on("data",(function(e,t){(e=e||t).method&&e.params&&e.params.subscription&&r.subscriptions.has(e.params.subscription)&&r.subscriptions.get(e.params.subscription).callback(null,e.params.result)})),this.provider.on("connect",(function(){r.subscriptions.forEach((function(e){e.subscription.resubscribe()}))})),this.provider.on("error",(function(e){r.subscriptions.forEach((function(t){t.callback(e)}))})),this.provider.on("close",(function(e){r._isCleanCloseEvent(e)&&!r._isIpcCloseError(e)||(r.subscriptions.forEach((function(t){t.callback(a.ConnectionCloseError(e)),r.subscriptions.delete(t.subscription.id)})),r.provider&&r.provider.emit&&r.provider.emit("error",a.ConnectionCloseError(e))),r.provider&&r.provider.emit&&r.provider.emit("end",e)})))},c.prototype.send=function(e,t){if(t=t||function(){},!this.provider)return t(a.InvalidProvider());var r=e.method,n=e.params,o=s.toPayload(r,n),f=this._jsonrpcResultCallback(t,o);if(this.provider.request)i(this.provider.request.bind(this.provider))({method:r,params:n},t);else if(this.provider.sendAsync)this.provider.sendAsync(o,f);else{if(!this.provider.send)throw new Error("Provider does not have a request or send method to use.");this.provider.send(o,f)}},c.prototype.sendBatch=function(e,t){if(!this.provider)return t(a.InvalidProvider());var r=s.toBatchPayload(e);this.provider[this.provider.sendAsync?"sendAsync":"send"](r,(function(e,r){return e?t(e):o.isArray(r)?void t(null,r):t(a.InvalidResponse(r))}))},c.prototype.addSubscription=function(e,t){if(!this.provider.on)throw new Error("The provider doesn't support subscriptions: "+this.provider.constructor.name);this.subscriptions.set(e.id,{callback:t,subscription:e})},c.prototype.removeSubscription=function(e,t){if(this.subscriptions.has(e)){var r=this.subscriptions.get(e).subscription.options.type;return this.subscriptions.delete(e),void this.send({method:r+"_unsubscribe",params:[e]},t)}"function"==typeof t&&t(null)},c.prototype.clearSubscriptions=function(e){try{var t=this;return this.subscriptions.size>0&&this.subscriptions.forEach((function(r,n){e&&"syncing"===r.name||t.removeSubscription(n)})),this.provider.reset&&this.provider.reset(),!0}catch(e){throw new Error("Error while clearing subscriptions: ".concat(e))}},c.prototype._isCleanCloseEvent=function(e){return"object"===(0,n.default)(e)&&([1e3].includes(e.code)||!0===e.wasClean)},c.prototype._isIpcCloseError=function(e){return"boolean"==typeof e&&e},c.prototype._jsonrpcResultCallback=function(e,t){return function(r,n){return n&&n.id&&t.id!==n.id?e(new Error("Wrong response id ".concat(n.id," (expected: ").concat(t.id,") in ").concat(JSON.stringify(t)))):r?e(r):n&&n.error?e(a.ErrorResponse(n)):s.isValidResponse(n)?void e(null,n.result):e(a.InvalidResponse(n))}},e.exports={Manager:c,BatchManager:f}},function(e,t,r){"use strict";var n=r(0)(r(1));e.exports=function(e){return e&&"object"===(0,n.default)(e)&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,r){"use strict";var n=r(0)(r(1));e.exports={ErrorResponse:function(e){var t=e&&e.error&&e.error.message?e.error.message:JSON.stringify(e),r=e.error&&e.error.data?e.error.data:null,n=new Error("Returned error: "+t);return n.data=r,n},InvalidNumberOfParams:function(e,t,r){return new Error('Invalid number of parameters for "'+r+'". Got '+e+" expected "+t+"!")},InvalidConnection:function(e,t){return this.ConnectionError("CONNECTION ERROR: Couldn't connect to node "+e+".",t)},InvalidProvider:function(){return new Error("Provider not set or invalid")},InvalidResponse:function(e){var t=e&&e.error&&e.error.message?e.error.message:"Invalid JSON RPC response: "+JSON.stringify(e);return new Error(t)},ConnectionTimeout:function(e){return new Error("CONNECTION TIMEOUT: timeout of "+e+" ms achived")},ConnectionNotOpenError:function(e){return this.ConnectionError("connection not open on send()",e)},ConnectionCloseError:function(e){return"object"===(0,n.default)(e)&&e.code&&e.reason?this.ConnectionError("CONNECTION ERROR: The connection got closed with the close code `"+e.code+"` and the following reason string `"+e.reason+"`",e):new Error("CONNECTION ERROR: The connection closed unexpectedly")},MaxAttemptsReachedOnReconnectingError:function(){return new Error("Maximum number of reconnect attempts reached!")},PendingRequestsOnReconnectingError:function(){return new Error("CONNECTION ERROR: Provider started to reconnect before the response got received!")},ConnectionError:function(e,t){var r=new Error(e);return t&&(r.code=t.code,r.reason=t.reason),r},RevertInstructionError:function(e,t){var r=new Error("Your request got reverted with the following reason string: "+e);return r.reason=e,r.signature=t,r},TransactionRevertInstructionError:function(e,t,r){var n=new Error("Transaction has been reverted by the EVM:\n"+JSON.stringify(r,null,2));return n.reason=e,n.signature=t,n.receipt=r,n},TransactionError:function(e,t){var r=new Error(e);return r.receipt=t,r},NoContractAddressFoundError:function(e){return this.TransactionError("The transaction receipt didn't contain a contract address.",e)},ContractCodeNotStoredError:function(e){return this.TransactionError("The contract code couldn't be stored, please check your gas limit.",e)},TransactionRevertedWithoutReasonError:function(e){return this.TransactionError("Transaction has been reverted by the EVM:\n"+JSON.stringify(e,null,2),e)},TransactionOutOfGasError:function(e){return this.TransactionError("Transaction ran out of gas. Please provide more gas:\n"+JSON.stringify(e,null,2),e)},ResolverMethodMissingError:function(e,t){return new Error("The resolver at "+e+'does not implement requested method: "'+t+'".')},ContractMissingABIError:function(){return new Error("You must provide the json interface of the contract when instantiating a contract object.")},ContractOnceRequiresCallbackError:function(){return new Error("Once requires a callback as the second parameter.")},ContractEventDoesNotExistError:function(e){return new Error('Event "'+e+"\" doesn't exist in this contract.")},ContractReservedEventError:function(e){return new Error('The event "'+e+"\" is a reserved event name, you can't use it.")},ContractMissingDeployDataError:function(){return new Error('No "data" specified in neither the given options, nor the default options.')},ContractNoAddressDefinedError:function(){return new Error("This contract object doesn't have address set yet, please set an address first.")},ContractNoFromAddressDefinedError:function(){return new Error('No "from" address specified in neither the given options, nor the default options.')}}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(11),o=r(17),a=r(112),s=function(e){return o.toBN(e).toString(10)},f=function(e){if(void 0!==e)return function(e){return"latest"===e||"pending"===e||"earliest"===e}(e)?e:"genesis"===e?"0x0":o.isHexStrict(e)?i.isString(e)?e.toLowerCase():e:o.numberToHex(e)},u=function(e){if(e.to&&(e.to=d(e.to)),e.data&&e.input)throw new Error('You can\'t have "data" and "input" as properties of transactions at the same time, please use either "data" or "input" instead.');if(!e.data&&e.input&&(e.data=e.input,delete e.input),e.data&&!e.data.startsWith("0x")&&(e.data="0x"+e.data),e.data&&!o.isHex(e.data))throw new Error("The data field must be HEX encoded data.");return(e.gas||e.gasLimit)&&(e.gas=e.gas||e.gasLimit),["gasPrice","gas","value","nonce"].filter((function(t){return void 0!==e[t]})).forEach((function(t){e[t]=o.numberToHex(e[t])})),e},c=function(e){return null!==e.blockNumber&&(e.blockNumber=o.hexToNumber(e.blockNumber)),null!==e.transactionIndex&&(e.transactionIndex=o.hexToNumber(e.transactionIndex)),e.nonce=o.hexToNumber(e.nonce),e.gas=o.hexToNumber(e.gas),e.gasPrice=s(e.gasPrice),e.value=s(e.value),e.to&&o.isAddress(e.to)?e.to=o.toChecksumAddress(e.to):e.to=null,e.from&&(e.from=o.toChecksumAddress(e.from)),e},h=function(e){if("string"==typeof e.blockHash&&"string"==typeof e.transactionHash&&"string"==typeof e.logIndex){var t=o.sha3(e.blockHash.replace("0x","")+e.transactionHash.replace("0x","")+e.logIndex.replace("0x",""));e.id="log_"+t.replace("0x","").substr(0,8)}else e.id||(e.id=null);return null!==e.blockNumber&&(e.blockNumber=o.hexToNumber(e.blockNumber)),null!==e.transactionIndex&&(e.transactionIndex=o.hexToNumber(e.transactionIndex)),null!==e.logIndex&&(e.logIndex=o.hexToNumber(e.logIndex)),e.address&&(e.address=o.toChecksumAddress(e.address)),e},d=function(e){var t=new a(e);if(t.isValid()&&t.isDirect())return t.toAddress().toLowerCase();if(o.isAddress(e))return"0x"+e.toLowerCase().replace("0x","");throw new Error("Provided address ".concat(e," is invalid, the capitalization checksum test failed, or it's an indirect IBAN address which can't be converted."))};e.exports={inputDefaultBlockNumberFormatter:function(e){return f(this&&null==e?this.defaultBlock:e)},inputBlockNumberFormatter:f,inputCallFormatter:function(e){var t=(e=u(e)).from||(this?this.defaultAccount:null);return t&&(e.from=d(t)),e},inputTransactionFormatter:function(e){if(e=u(e),!i.isNumber(e.from)&&!i.isObject(e.from)){if(e.from=e.from||(this?this.defaultAccount:null),!e.from&&!i.isNumber(e.from))throw new Error('The send transactions "from" field must be defined!');e.from=d(e.from)}return e},inputAddressFormatter:d,inputPostFormatter:function(e){return e.ttl&&(e.ttl=o.numberToHex(e.ttl)),e.workToProve&&(e.workToProve=o.numberToHex(e.workToProve)),e.priority&&(e.priority=o.numberToHex(e.priority)),i.isArray(e.topics)||(e.topics=e.topics?[e.topics]:[]),e.topics=e.topics.map((function(e){return 0===e.indexOf("0x")?e:o.fromUtf8(e)})),e},inputLogFormatter:function(e){var t=function(e){return null==e?null:0===(e=String(e)).indexOf("0x")?e:o.fromUtf8(e)};return(e.fromBlock||0===e.fromBlock)&&(e.fromBlock=f(e.fromBlock)),(e.toBlock||0===e.toBlock)&&(e.toBlock=f(e.toBlock)),e.topics=e.topics||[],e.topics=e.topics.map((function(e){return i.isArray(e)?e.map(t):t(e)})),t=null,e.address&&(e.address=i.isArray(e.address)?e.address.map((function(e){return d(e)})):d(e.address)),e},inputSignFormatter:function(e){return o.isHexStrict(e)?e:o.utf8ToHex(e)},inputStorageKeysFormatter:function(e){return e.map(o.numberToHex)},outputProofFormatter:function(e){return e.address=o.toChecksumAddress(e.address),e.nonce=o.hexToNumberString(e.nonce),e.balance=o.hexToNumberString(e.balance),e},outputBigNumberFormatter:s,outputTransactionFormatter:c,outputTransactionReceiptFormatter:function(e){if("object"!==(0,n.default)(e))throw new Error("Received receipt is invalid: "+e);return null!==e.blockNumber&&(e.blockNumber=o.hexToNumber(e.blockNumber)),null!==e.transactionIndex&&(e.transactionIndex=o.hexToNumber(e.transactionIndex)),e.cumulativeGasUsed=o.hexToNumber(e.cumulativeGasUsed),e.gasUsed=o.hexToNumber(e.gasUsed),i.isArray(e.logs)&&(e.logs=e.logs.map(h)),e.contractAddress&&(e.contractAddress=o.toChecksumAddress(e.contractAddress)),void 0!==e.status&&null!==e.status&&(e.status=Boolean(parseInt(e.status))),e},outputBlockFormatter:function(e){return e.gasLimit=o.hexToNumber(e.gasLimit),e.gasUsed=o.hexToNumber(e.gasUsed),e.size=o.hexToNumber(e.size),e.timestamp=o.hexToNumber(e.timestamp),null!==e.number&&(e.number=o.hexToNumber(e.number)),e.difficulty&&(e.difficulty=s(e.difficulty)),e.totalDifficulty&&(e.totalDifficulty=s(e.totalDifficulty)),i.isArray(e.transactions)&&e.transactions.forEach((function(e){if(!i.isString(e))return c(e)})),e.miner&&(e.miner=o.toChecksumAddress(e.miner)),e},outputLogFormatter:h,outputPostFormatter:function(e){return e.expiry=o.hexToNumber(e.expiry),e.sent=o.hexToNumber(e.sent),e.ttl=o.hexToNumber(e.ttl),e.workProved=o.hexToNumber(e.workProved),e.topics||(e.topics=[]),e.topics=e.topics.map((function(e){return o.toUtf8(e)})),e},outputSyncingFormatter:function(e){return e.startingBlock=o.hexToNumber(e.startingBlock),e.currentBlock=o.hexToNumber(e.currentBlock),e.highestBlock=o.hexToNumber(e.highestBlock),e.knownStates&&(e.knownStates=o.hexToNumber(e.knownStates),e.pulledStates=o.hexToNumber(e.pulledStates)),e}}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(108),o=r(222),a=new i(0),s=new i(-1),f={noether:"0",wei:"1",kwei:"1000",Kwei:"1000",babbage:"1000",femtoether:"1000",mwei:"1000000",Mwei:"1000000",lovelace:"1000000",picoether:"1000000",gwei:"1000000000",Gwei:"1000000000",shannon:"1000000000",nanoether:"1000000000",nano:"1000000000",szabo:"1000000000000",microether:"1000000000000",micro:"1000000000000",finney:"1000000000000000",milliether:"1000000000000000",milli:"1000000000000000",ether:"1000000000000000000",kether:"1000000000000000000000",grand:"1000000000000000000000",mether:"1000000000000000000000000",gether:"1000000000000000000000000000",tether:"1000000000000000000000000000000"};function u(e){var t=e?e.toLowerCase():"ether",r=f[t];if("string"!=typeof r)throw new Error("[ethjs-unit] the unit provided "+e+" doesn't exists, please use the one of the following units "+JSON.stringify(f,null,2));return new i(r,10)}function c(e){if("string"==typeof e){if(!e.match(/^-?[0-9.]+$/))throw new Error("while converting number to string, invalid number value '"+e+"', should be a number matching (^-?[0-9.]+).");return e}if("number"==typeof e)return String(e);if("object"===(0,n.default)(e)&&e.toString&&(e.toTwos||e.dividedToIntegerBy))return e.toPrecision?String(e.toPrecision()):e.toString(10);throw new Error("while converting number to string, invalid number value '"+e+"' type "+(0,n.default)(e)+".")}e.exports={unitMap:f,numberToString:c,getValueOfUnit:u,fromWei:function(e,t,r){var n=o(e),i=n.lt(a),c=u(t),h=f[t].length-1||1,d=r||{};i&&(n=n.mul(s));for(var l=n.mod(c).toString(10);l.length2)throw new Error("[ethjs-unit] while converting number "+e+" to wei, too many decimal points");var d=h[0],l=h[1];if(d||(d="0"),l||(l="0"),l.length>o)throw new Error("[ethjs-unit] while converting number "+e+" to wei, too many decimal places");for(;l.length0?n-4:n,h=0;h>16&255,s[f++]=t>>8&255,s[f++]=255&t;2===a&&(t=i[e.charCodeAt(h)]<<2|i[e.charCodeAt(h+1)]>>4,s[f++]=255&t);1===a&&(t=i[e.charCodeAt(h)]<<10|i[e.charCodeAt(h+1)]<<4|i[e.charCodeAt(h+2)]>>2,s[f++]=t>>8&255,s[f++]=255&t);return s},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],a=0,s=r-i;as?s:a+16383));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,f=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,r){for(var i,o,a=[],s=t;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t,r){"use strict";t.read=function(e,t,r,n,i){var o,a,s=8*i-n-1,f=(1<>1,c=-7,h=r?i-1:0,d=r?-1:1,l=e[t+h];for(h+=d,o=l&(1<<-c)-1,l>>=-c,c+=s;c>0;o=256*o+e[t+h],h+=d,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+e[t+h],h+=d,c-=8);if(0===o)o=1-u;else{if(o===f)return a?NaN:1/0*(l?-1:1);a+=Math.pow(2,n),o-=u}return(l?-1:1)*a*Math.pow(2,o-n)},t.write=function(e,t,r,n,i,o){var a,s,f,u=8*o-i-1,c=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,l=n?0:o-1,p=n?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(f=Math.pow(2,-a))<1&&(a--,f*=2),(t+=a+h>=1?d/f:d*Math.pow(2,1-h))*f>=2&&(a++,f/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(t*f-1)*Math.pow(2,i),a+=h):(s=t*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;e[r+l]=255&s,l+=p,s/=256,i-=8);for(a=a<0;e[r+l]=255&a,l+=p,a/=256,u-=8);e[r+l-p]|=128*b}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(108),o=r(110);e.exports=function(e){if("string"==typeof e||"number"==typeof e){var t=new i(1),r=String(e).toLowerCase().trim(),a="0x"===r.substr(0,2)||"-0x"===r.substr(0,3),s=o(r);if("-"===s.substr(0,1)&&(s=o(s.slice(1)),t=new i(-1,10)),!(s=""===s?"0":s).match(/^-?[0-9]+$/)&&s.match(/^[0-9A-Fa-f]+$/)||s.match(/^[a-fA-F]+$/)||!0===a&&s.match(/^[0-9A-Fa-f]+$/))return new i(s,16).mul(t);if((s.match(/^-?[0-9]+$/)||""===s)&&!1===a)return new i(s,10).mul(t)}else if("object"===(0,n.default)(e)&&e.toString&&!e.pop&&!e.push&&e.toString(10).match(/^-?[0-9]+$/)&&(e.mul||e.dividedToIntegerBy))return new i(e.toString(10),10);throw new Error("[number-to-bn] while converting number "+JSON.stringify(e)+" to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.")}},function(e,t,r){"use strict";var n=r(0)(r(1));e.exports=function(e){if("string"!=typeof e)throw new Error("[is-hex-prefixed] value must be type 'string', is currently type "+(0,n.default)(e)+", while checking isHexPrefixed.");return"0x"===e.slice(0,2)}},function(e,t){},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(226),o=r(110);e.exports=function(e){if("string"==typeof e||"number"==typeof e){var t=new i(1),r=String(e).toLowerCase().trim(),a="0x"===r.substr(0,2)||"-0x"===r.substr(0,3),s=o(r);if("-"===s.substr(0,1)&&(s=o(s.slice(1)),t=new i(-1,10)),!(s=""===s?"0":s).match(/^-?[0-9]+$/)&&s.match(/^[0-9A-Fa-f]+$/)||s.match(/^[a-fA-F]+$/)||!0===a&&s.match(/^[0-9A-Fa-f]+$/))return new i(s,16).mul(t);if((s.match(/^-?[0-9]+$/)||""===s)&&!1===a)return new i(s,10).mul(t)}else if("object"===(0,n.default)(e)&&e.toString&&!e.pop&&!e.push&&e.toString(10).match(/^-?[0-9]+$/)&&(e.mul||e.dividedToIntegerBy))return new i(e.toString(10),10);throw new Error("[number-to-bn] while converting number "+JSON.stringify(e)+" to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.")}},function(e,t,r){"use strict";(function(e){var t=r(0)(r(1));!function(e,n){function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function o(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}function a(e,t,r){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(r=t,t=10),this._init(e||0,t||10,r||"be"))}var s;"object"===(0,t.default)(e)?e.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=r(2).Buffer}catch(e){}function f(e,t,r){for(var n=0,i=Math.min(e.length,r),o=t;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(e,t,r,n){for(var i=0,o=Math.min(e.length,r),a=t;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(e){return e instanceof a||null!==e&&"object"===(0,t.default)(e)&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,r,n){if("number"==typeof e)return this._initNumber(e,r,n);if("object"===(0,t.default)(e))return this._initArray(e,r,n);"hex"===r&&(r=16),i(r===(0|r)&&r>=2&&r<=36);var o=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&o++,16===r?this._parseHex(e,o):this._parseBase(e,r,o),"-"===e[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),r,n)},a.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(i(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},a.prototype._initArray=function(e,t,r){if(i("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=e[n]|e[n-1]<<8|e[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=6)i=f(e,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==t&&(i=f(e,t,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=t)n++;n--,i=i/t|0;for(var o=e.length-r,a=o%n,s=Math.min(o,o-a)+r,f=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var i=0|e.words[0],o=0|t.words[0],a=i*o,s=67108863&a,f=a/67108864|0;r.words[0]=s;for(var u=1;u>>26,h=67108863&f,d=Math.min(u,t.length-1),l=Math.max(0,u-e.length+1);l<=d;l++){var p=u-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.words[l])+h)/67108864|0,h=67108863&a}r.words[u]=0|h,f=0|c}return 0!==f?r.words[u]=0|f:r.length--,r.strip()}a.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?c[6-f.length]+f+r:f+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var u=h[e],l=d[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(e);r=(p=p.idivn(l)).isZero()?b+r:c[u-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return i(void 0!==s),this.toArrayLike(s,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,f="le"===t,u=new e(o),c=this.clone();if(f){for(s=0;!c.isZero();s++)a=c.andln(255),c.iushrn(8),u[s]=a;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var r=e/26|0,n=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=e):(r=e,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&t;for(;0!==o&&a>26,this.words[a]=67108863&t;if(0===o&&a>>13,l=0|a[1],p=8191&l,b=l>>>13,m=0|a[2],v=8191&m,y=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],A=8191&k,S=k>>>13,E=0|a[5],M=8191&E,x=E>>>13,I=0|a[6],P=8191&I,N=I>>>13,O=0|a[7],R=8191&O,U=O>>>13,C=0|a[8],B=8191&C,T=C>>>13,j=0|a[9],L=8191&j,F=j>>>13,D=0|s[0],z=8191&D,q=D>>>13,H=0|s[1],K=8191&H,V=H>>>13,G=0|s[2],W=8191&G,$=G>>>13,Y=0|s[3],Z=8191&Y,J=Y>>>13,X=0|s[4],Q=8191&X,ee=X>>>13,te=0|s[5],re=8191&te,ne=te>>>13,ie=0|s[6],oe=8191&ie,ae=ie>>>13,se=0|s[7],fe=8191&se,ue=se>>>13,ce=0|s[8],he=8191&ce,de=ce>>>13,le=0|s[9],pe=8191&le,be=le>>>13;r.negative=e.negative^t.negative,r.length=19;var me=(u+(n=Math.imul(h,z))|0)+((8191&(i=(i=Math.imul(h,q))+Math.imul(d,z)|0))<<13)|0;u=((o=Math.imul(d,q))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,z),i=(i=Math.imul(p,q))+Math.imul(b,z)|0,o=Math.imul(b,q);var ve=(u+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(d,K)|0))<<13)|0;u=((o=o+Math.imul(d,V)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,z),i=(i=Math.imul(v,q))+Math.imul(y,z)|0,o=Math.imul(y,q),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var ye=(u+(n=n+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,$)|0)+Math.imul(d,W)|0))<<13)|0;u=((o=o+Math.imul(d,$)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,z),i=(i=Math.imul(w,q))+Math.imul(_,z)|0,o=Math.imul(_,q),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,V)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,$)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,$)|0;var ge=(u+(n=n+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,Z)|0))<<13)|0;u=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(A,z),i=(i=Math.imul(A,q))+Math.imul(S,z)|0,o=Math.imul(S,q),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(v,W)|0,i=(i=i+Math.imul(v,$)|0)+Math.imul(y,W)|0,o=o+Math.imul(y,$)|0,n=n+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,Z)|0,o=o+Math.imul(b,J)|0;var we=(u+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;u=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(M,z),i=(i=Math.imul(M,q))+Math.imul(x,z)|0,o=Math.imul(x,q),n=n+Math.imul(A,K)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(w,W)|0,i=(i=i+Math.imul(w,$)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,$)|0,n=n+Math.imul(v,Z)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(y,Z)|0,o=o+Math.imul(y,J)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,ee)|0;var _e=(u+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;u=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,z),i=(i=Math.imul(P,q))+Math.imul(N,z)|0,o=Math.imul(N,q),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,$)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,$)|0,n=n+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,Z)|0,o=o+Math.imul(_,J)|0,n=n+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,ee)|0)+Math.imul(y,Q)|0,o=o+Math.imul(y,ee)|0,n=n+Math.imul(p,re)|0,i=(i=i+Math.imul(p,ne)|0)+Math.imul(b,re)|0,o=o+Math.imul(b,ne)|0;var ke=(u+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;u=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(R,z),i=(i=Math.imul(R,q))+Math.imul(U,z)|0,o=Math.imul(U,q),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,V)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,V)|0,n=n+Math.imul(M,W)|0,i=(i=i+Math.imul(M,$)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,$)|0,n=n+Math.imul(A,Z)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(S,Z)|0,o=o+Math.imul(S,J)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,ee)|0,n=n+Math.imul(v,re)|0,i=(i=i+Math.imul(v,ne)|0)+Math.imul(y,re)|0,o=o+Math.imul(y,ne)|0,n=n+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,ae)|0)+Math.imul(b,oe)|0,o=o+Math.imul(b,ae)|0;var Ae=(u+(n=n+Math.imul(h,fe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ue)|0)+Math.imul(d,fe)|0))<<13)|0;u=((o=o+Math.imul(d,ue)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(B,z),i=(i=Math.imul(B,q))+Math.imul(T,z)|0,o=Math.imul(T,q),n=n+Math.imul(R,K)|0,i=(i=i+Math.imul(R,V)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,V)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,$)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,$)|0,n=n+Math.imul(M,Z)|0,i=(i=i+Math.imul(M,J)|0)+Math.imul(x,Z)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,ee)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,ee)|0,n=n+Math.imul(w,re)|0,i=(i=i+Math.imul(w,ne)|0)+Math.imul(_,re)|0,o=o+Math.imul(_,ne)|0,n=n+Math.imul(v,oe)|0,i=(i=i+Math.imul(v,ae)|0)+Math.imul(y,oe)|0,o=o+Math.imul(y,ae)|0,n=n+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,ue)|0)+Math.imul(b,fe)|0,o=o+Math.imul(b,ue)|0;var Se=(u+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;u=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,z),i=(i=Math.imul(L,q))+Math.imul(F,z)|0,o=Math.imul(F,q),n=n+Math.imul(B,K)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(R,W)|0,i=(i=i+Math.imul(R,$)|0)+Math.imul(U,W)|0,o=o+Math.imul(U,$)|0,n=n+Math.imul(P,Z)|0,i=(i=i+Math.imul(P,J)|0)+Math.imul(N,Z)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,ee)|0,n=n+Math.imul(A,re)|0,i=(i=i+Math.imul(A,ne)|0)+Math.imul(S,re)|0,o=o+Math.imul(S,ne)|0,n=n+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,ae)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,ae)|0,n=n+Math.imul(v,fe)|0,i=(i=i+Math.imul(v,ue)|0)+Math.imul(y,fe)|0,o=o+Math.imul(y,ue)|0,n=n+Math.imul(p,he)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(b,he)|0,o=o+Math.imul(b,de)|0;var Ee=(u+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;u=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(F,K)|0,o=Math.imul(F,V),n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,$)|0)+Math.imul(T,W)|0,o=o+Math.imul(T,$)|0,n=n+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(U,Z)|0,o=o+Math.imul(U,J)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,ne)|0)+Math.imul(x,re)|0,o=o+Math.imul(x,ne)|0,n=n+Math.imul(A,oe)|0,i=(i=i+Math.imul(A,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,fe)|0,i=(i=i+Math.imul(w,ue)|0)+Math.imul(_,fe)|0,o=o+Math.imul(_,ue)|0,n=n+Math.imul(v,he)|0,i=(i=i+Math.imul(v,de)|0)+Math.imul(y,he)|0,o=o+Math.imul(y,de)|0;var Me=(u+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;u=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,$))+Math.imul(F,W)|0,o=Math.imul(F,$),n=n+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,J)|0)+Math.imul(T,Z)|0,o=o+Math.imul(T,J)|0,n=n+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(N,re)|0,o=o+Math.imul(N,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(x,oe)|0,o=o+Math.imul(x,ae)|0,n=n+Math.imul(A,fe)|0,i=(i=i+Math.imul(A,ue)|0)+Math.imul(S,fe)|0,o=o+Math.imul(S,ue)|0,n=n+Math.imul(w,he)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,he)|0,o=o+Math.imul(_,de)|0;var xe=(u+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;u=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(F,Z)|0,o=Math.imul(F,J),n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(R,re)|0,i=(i=i+Math.imul(R,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(N,oe)|0,o=o+Math.imul(N,ae)|0,n=n+Math.imul(M,fe)|0,i=(i=i+Math.imul(M,ue)|0)+Math.imul(x,fe)|0,o=o+Math.imul(x,ue)|0,n=n+Math.imul(A,he)|0,i=(i=i+Math.imul(A,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Ie=(u+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;u=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(F,Q)|0,o=Math.imul(F,ee),n=n+Math.imul(B,re)|0,i=(i=i+Math.imul(B,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(R,oe)|0,i=(i=i+Math.imul(R,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(P,fe)|0,i=(i=i+Math.imul(P,ue)|0)+Math.imul(N,fe)|0,o=o+Math.imul(N,ue)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(x,he)|0,o=o+Math.imul(x,de)|0;var Pe=(u+(n=n+Math.imul(A,pe)|0)|0)+((8191&(i=(i=i+Math.imul(A,be)|0)+Math.imul(S,pe)|0))<<13)|0;u=((o=o+Math.imul(S,be)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(L,re),i=(i=Math.imul(L,ne))+Math.imul(F,re)|0,o=Math.imul(F,ne),n=n+Math.imul(B,oe)|0,i=(i=i+Math.imul(B,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(R,fe)|0,i=(i=i+Math.imul(R,ue)|0)+Math.imul(U,fe)|0,o=o+Math.imul(U,ue)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(N,he)|0,o=o+Math.imul(N,de)|0;var Ne=(u+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(x,pe)|0))<<13)|0;u=((o=o+Math.imul(x,be)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(F,oe)|0,o=Math.imul(F,ae),n=n+Math.imul(B,fe)|0,i=(i=i+Math.imul(B,ue)|0)+Math.imul(T,fe)|0,o=o+Math.imul(T,ue)|0,n=n+Math.imul(R,he)|0,i=(i=i+Math.imul(R,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Oe=(u+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(N,pe)|0))<<13)|0;u=((o=o+Math.imul(N,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,fe),i=(i=Math.imul(L,ue))+Math.imul(F,fe)|0,o=Math.imul(F,ue),n=n+Math.imul(B,he)|0,i=(i=i+Math.imul(B,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var Re=(u+(n=n+Math.imul(R,pe)|0)|0)+((8191&(i=(i=i+Math.imul(R,be)|0)+Math.imul(U,pe)|0))<<13)|0;u=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(F,he)|0,o=Math.imul(F,de);var Ue=(u+(n=n+Math.imul(B,pe)|0)|0)+((8191&(i=(i=i+Math.imul(B,be)|0)+Math.imul(T,pe)|0))<<13)|0;u=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ue>>>26)|0,Ue&=67108863;var Ce=(u+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(F,pe)|0))<<13)|0;return u=((o=Math.imul(F,be))+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,f[0]=me,f[1]=ve,f[2]=ye,f[3]=ge,f[4]=we,f[5]=_e,f[6]=ke,f[7]=Ae,f[8]=Se,f[9]=Ee,f[10]=Me,f[11]=xe,f[12]=Ie,f[13]=Pe,f[14]=Ne,f[15]=Oe,f[16]=Re,f[17]=Ue,f[18]=Ce,0!==u&&(f[19]=u,r.length++),r};function b(e,t,r){return(new m).mulp(e,t,r)}function m(e,t){this.x=e,this.y=t}Math.imul||(p=l),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):r<63?l(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,e,t):b(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},m.prototype.permute=function(e,t,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*t;a>=26,t+=n/67108864|0,t+=o>>>26,this.words[r]=67108863&o}return 0!==t&&(this.words[r]=t,this.length++),this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>i}return t}(e);if(0===t.length)return new a(1);for(var r=this,n=0;n=0);var t,r=e%26,n=(e-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(t=0;t>>26-r}a&&(this.words[t]=a,this.length++)}if(0!==n){for(t=this.length-1;t>=0;t--)this.words[t+n]=this.words[t];for(t=0;t=0),n=t?(t-t%26)/26:0;var o=e%26,a=Math.min((e-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,u=0;u=0&&(0!==c||u>=n);u--){var h=0|this.words[u];this.words[u]=c<<26-o|h>>>o,c=h&s}return f&&0!==c&&(f.words[f.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,r){return i(0===this.negative),this.iushrn(e,t,r)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,n=1<=0);var t=e%26,r=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var n=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(f/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),i=e,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,f=n.length-i.length;if("mod"!==t){(s=new a(null)).length=f+1,s.words=new Array(s.length);for(var u=0;u=0;h--){var d=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(i,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=d)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(e,t,r){return i(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(n=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:n,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var n,o,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),i=e.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){i(e<=67108863);for(var t=(1<<26)%e,r=0,n=this.length-1;n>=0;n--)r=(t*r+(0|this.words[n]))%e;return r},a.prototype.idivn=function(e){i(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*t;this.words[r]=n/e|0,t=n%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n=new a(1),o=new a(0),s=new a(0),f=new a(1),u=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++u;for(var c=r.clone(),h=t.clone();!t.isZero();){for(var d=0,l=1;0==(t.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(c),o.isub(h)),n.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||f.isOdd())&&(s.iadd(c),f.isub(h)),s.iushrn(1),f.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(f)):(r.isub(t),s.isub(n),f.isub(o))}return{a:s,b:f,gcd:r.iushln(u)}},a.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var n,o=new a(1),s=new a(0),f=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var u=0,c=1;0==(t.words[0]&c)&&u<26;++u,c<<=1);if(u>0)for(t.iushrn(u);u-- >0;)o.isOdd()&&o.iadd(f),o.iushrn(1);for(var h=0,d=1;0==(r.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(f),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(n=0===t.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(e),n},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=t.cmp(r);if(i<0){var o=t;t=r,r=o}else if(0===i||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,r=(e-t)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),i(e<=67108863,"Number is too big");var n=0|this.words[0];t=n===e?0:ne.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|e.words[r];if(n!==i){ni&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new A(e)},a.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function y(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function S(e){A.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},y.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):r.strip(),r},y.prototype.split=function(e,t){e.iushrn(this.n,0,t)},y.prototype.imulK=function(e){return e.imul(this.k)},o(g,y),g.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n>>22,i=o}i>>>=22,e.words[n-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},g.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=i,t=n}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new g;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new k}return v[e]=t,t},A.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},A.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},A.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},A.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},A.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},A.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},A.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},A.prototype.isqr=function(e){return this.imul(e,e.clone())},A.prototype.sqr=function(e){return this.mul(e,e)},A.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var r=this.m.add(new a(1)).iushrn(2);return this.pow(e,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),f=s.redNeg(),u=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,u).cmp(f);)c.redIAdd(f);for(var h=this.pow(c,n),d=this.pow(e,n.addn(1).iushrn(1)),l=this.pow(e,n),p=o;0!==l.cmp(s);){for(var b=l,m=0;0!==b.cmp(s);m++)b=b.redSqr();i(m=0;n--){for(var u=t.words[n],c=f-1;c>=0;c--){var h=u>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}f=26}return i},A.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},A.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new S(e)},o(S,A),S.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},S.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},S.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e)}).call(this,r(16)(e))},function(e,t,r){"use strict"; -/*! https://mths.be/utf8js v3.0.0 by @mathias */!function(e){var t,r,n,i=String.fromCharCode;function o(e){for(var t,r,n=[],i=0,o=e.length;i=55296&&t<=56319&&i=55296&&e<=57343)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function s(e,t){return i(e>>t&63|128)}function f(e){if(0==(4294967168&e))return i(e);var t="";return 0==(4294965248&e)?t=i(e>>6&31|192):0==(4294901760&e)?(a(e),t=i(e>>12&15|224),t+=s(e,6)):0==(4292870144&e)&&(t=i(e>>18&7|240),t+=s(e,12),t+=s(e,6)),t+=i(63&e|128)}function u(){if(n>=r)throw Error("Invalid byte index");var e=255&t[n];if(n++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function c(){var e,i;if(n>r)throw Error("Invalid byte index");if(n==r)return!1;if(e=255&t[n],n++,0==(128&e))return e;if(192==(224&e)){if((i=(31&e)<<6|u())>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&e)){if((i=(15&e)<<12|u()<<6|u())>=2048)return a(i),i;throw Error("Invalid continuation byte")}if(240==(248&e)&&(i=(7&e)<<18|u()<<12|u()<<6|u())>=65536&&i<=1114111)return i;throw Error("Invalid UTF-8 detected")}e.version="3.0.0",e.encode=function(e){for(var t=o(e),r=t.length,n=-1,i="";++n65535&&(o+=i((t-=65536)>>>10&1023|55296),t=56320|1023&t),o+=i(t);return o}(s)}}(t)},function(e,t,r){"use strict";var n=r(0)(r(1));Object.defineProperty(t,"__esModule",{value:!0});var i=r(229);function o(e){return"string"==typeof e&&(!!/^(0x)?[0-9a-f]{512}$/i.test(e)&&!(!/^(0x)?[0-9a-f]{512}$/.test(e)&&!/^(0x)?[0-9A-F]{512}$/.test(e)))}function a(e,t){"object"===(0,n.default)(t)&&t.constructor===Uint8Array&&(t=i.bytesToHex(t));for(var r=i.keccak256(t).replace("0x",""),o=0;o<12;o+=4){var a=(parseInt(r.substr(o,2),16)<<8)+parseInt(r.substr(o+2,2),16)&2047,f=1<=48&&e<=57)return e-48;if(e>=65&&e<=70)return e-55;if(e>=97&&e<=102)return e-87;throw new Error("invalid bloom")}function f(e){return"string"==typeof e&&(!!/^(0x)?[0-9a-f]{64}$/i.test(e)&&!(!/^(0x)?[0-9a-f]{64}$/.test(e)&&!/^(0x)?[0-9A-F]{64}$/.test(e)))}function u(e){return"string"==typeof e&&(!!e.match(/^(0x)?[0-9a-fA-F]{40}$/)||!!e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/))}t.isBloom=o,t.isInBloom=a,t.isUserEthereumAddressInBloom=function(e,t){if(!o(e))throw new Error("Invalid bloom given");if(!u(t))throw new Error('Invalid ethereum address given: "'.concat(t,'"'));return a(e,i.padLeft(t,64))},t.isContractAddressInBloom=function(e,t){if(!o(e))throw new Error("Invalid bloom given");if(!u(t))throw new Error('Invalid contract address given: "'.concat(t,'"'));return a(e,t)},t.isTopicInBloom=function(e,t){if(!o(e))throw new Error("Invalid bloom given");if(!f(t))throw new Error("Invalid topic");return a(e,t)},t.isTopic=f,t.isAddress=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(230);function i(e){if(null==e)throw new Error("cannot convert null value to array");if("string"==typeof e){var t=e.match(/^(0x)?[0-9a-fA-F]*$/);if(!t)throw new Error("invalid hexidecimal string");if("0x"!==t[1])throw new Error("hex string must have 0x prefix");(e=e.substring(2)).length%2&&(e="0"+e);for(var r=[],n=0;n=256||parseInt(String(r))!=r)return!1}return!0}(e))return o(new Uint8Array(e));throw new Error("invalid arrayify value")}function o(e){return e.slice||(e.slice=function(){var t=Array.prototype.slice.call(arguments);return o(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}t.keccak256=function(e){return"0x"+n.keccak_256(i(e))},t.padLeft=function(e,t){var r=/^0x/i.test(e)||"number"==typeof e,n=t-(e=e.toString().replace(/^0x/i,"")).length+1>=0?t-e.length+1:0;return(r?"0x":"")+new Array(n).join("0")+e},t.bytesToHex=function(e){for(var t=[],r=0;r>>4).toString(16)),t.push((15&e[r]).toString(16));return"0x".concat(t.join("").replace(/^0+/,""))},t.toByteArray=i},function(e,t,r){"use strict";(function(e,n,i){var o,a=r(0)(r(1)); +function o(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i=0;u--)if(c[u]!==h[u])return!1;for(u=c.length-1;u>=0;u--)if(a=c[u],!w(t[a],e[a],r,n))return!1;return!0}(t,e,r,i))}return r?t===e:t==e}function _(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function k(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function A(t,e,r,n){var i;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!i&&v(i,r,"Missing expected exception"+n);var o="string"==typeof n,a=!t&&i&&!r;if((!t&&s.isError(i)&&o&&k(i,r)||a)&&v(i,r,"Got unwanted exception"+n),t&&i&&r&&!k(i,r)||!t&&i)throw i}l.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=function(t){return m(y(t.actual),128)+" "+t.operator+" "+m(y(t.expected),128)}(this),this.generatedMessage=!0);var e=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=b(e),o=n.indexOf("\n"+i);if(o>=0){var a=n.indexOf("\n",o+1);n=n.substring(a+1)}this.stack=n}}},s.inherits(l.AssertionError,Error),l.fail=v,l.ok=g,l.equal=function(t,e,r){t!=e&&v(t,e,r,"==",l.equal)},l.notEqual=function(t,e,r){t==e&&v(t,e,r,"!=",l.notEqual)},l.deepEqual=function(t,e,r){w(t,e,!1)||v(t,e,r,"deepEqual",l.deepEqual)},l.deepStrictEqual=function(t,e,r){w(t,e,!0)||v(t,e,r,"deepStrictEqual",l.deepStrictEqual)},l.notDeepEqual=function(t,e,r){w(t,e,!1)&&v(t,e,r,"notDeepEqual",l.notDeepEqual)},l.notDeepStrictEqual=function t(e,r,n){w(e,r,!0)&&v(e,r,n,"notDeepStrictEqual",t)},l.strictEqual=function(t,e,r){t!==e&&v(t,e,r,"===",l.strictEqual)},l.notStrictEqual=function(t,e,r){t===e&&v(t,e,r,"!==",l.notStrictEqual)},l.throws=function(t,e,r){A(!0,t,e,r)},l.doesNotThrow=function(t,e,r){A(!1,t,e,r)},l.ifError=function(t){if(t)throw t},l.strict=i((function t(e,r){e||v(e,!0,r,"==",t)}),l,{equal:l.strictEqual,deepEqual:l.deepStrictEqual,notEqual:l.notStrictEqual,notDeepEqual:l.notDeepStrictEqual}),l.strict.strict=l.strict;var S=Object.keys||function(t){var e=[];for(var r in t)u.call(t,r)&&e.push(r);return e}}).call(this,r(7))},function(t,e,r){"use strict";var n=r(0)(r(1)),i=function(){return(i=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0))return!0;for(var e=0,r=this._supportedHardforks;e=i},t.prototype.activeOnBlock=function(t,e){return this.hardforkIsActiveOnBlock(null,t,e)},t.prototype.hardforkGteHardfork=function(t,e,r){var n=void 0!==(r=void 0!==r?r:{}).onlyActive&&r.onlyActive;t=this._chooseHardfork(t,r.onlySupported);for(var i=-1,o=-1,a=0,s=0,u=n?this.activeHardforks(null,r):this.hardforks();s=o},t.prototype.gteHardfork=function(t,e){return this.hardforkGteHardfork(null,t,e)},t.prototype.hardforkIsActiveOnChain=function(t,e){var r=void 0!==(e=void 0!==e?e:{}).onlySupported&&e.onlySupported;t=this._chooseHardfork(t,r);for(var n=0,i=this.hardforks();n0)return r[r.length-1].name;throw new Error("No (supported) active hardfork found")},t.prototype.hardforkBlock=function(t){return t=this._chooseHardfork(t,!1),this._getHardfork(t).block},t.prototype.isHardforkBlock=function(t,e){return e=this._chooseHardfork(e,!1),this.hardforkBlock(e)===t},t.prototype.consensus=function(t){return t=this._chooseHardfork(t),this._getHardfork(t).consensus},t.prototype.finality=function(t){return t=this._chooseHardfork(t),this._getHardfork(t).finality},t.prototype.genesis=function(){return this._chainParams.genesis},t.prototype.hardforks=function(){return this._chainParams.hardforks},t.prototype.bootstrapNodes=function(){return this._chainParams.bootstrapNodes},t.prototype.hardfork=function(){return this._hardfork},t.prototype.chainId=function(){return this._chainParams.chainId},t.prototype.chainName=function(){return o.chains.names[this.chainId()]||this._chainParams.name},t.prototype.networkId=function(){return this._chainParams.networkId},t}();e.default=s},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(493),o="function"==typeof Symbol&&"symbol"===(0,n.default)(Symbol("foo")),a=Object.prototype.toString,s=Array.prototype.concat,u=Object.defineProperty,f=u&&function(){var t={};try{for(var e in u(t,"x",{enumerable:!1,value:t}),t)return!1;return t.x===t}catch(t){return!1}}(),c=function(t,e,r,n){var i;(!(e in t)||"function"==typeof(i=n)&&"[object Function]"===a.call(i)&&n())&&(f?u(t,e,{configurable:!0,enumerable:!1,value:r,writable:!0}):t[e]=r)},h=function(t,e){var r=arguments.length>2?arguments[2]:{},n=i(e);o&&(n=s.call(n,Object.getOwnPropertySymbols(e)));for(var a=0;a=0&&"[object Function]"===i.call(t.callee)),r}},function(t,e,r){"use strict";var n=r(99),i=r(495),o=n.call(Function.call,String.prototype.replace),a=/^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/,s=/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/;t.exports=function(){var t=i.ToString(i.CheckObjectCoercible(this));return o(o(t,a,""),s,"")}},function(t,e,r){"use strict";var n=r(0)(r(1)),i=Object.getOwnPropertyDescriptor?function(){return Object.getOwnPropertyDescriptor(arguments,"callee").get}():function(){throw new TypeError},o="function"==typeof Symbol&&"symbol"===(0,n.default)(Symbol.iterator),a=Object.getPrototypeOf||function(t){return t.__proto__},s=void 0,u="undefined"==typeof Uint8Array?void 0:a(Uint8Array),f={"$ %Array%":Array,"$ %ArrayBuffer%":"undefined"==typeof ArrayBuffer?void 0:ArrayBuffer,"$ %ArrayBufferPrototype%":"undefined"==typeof ArrayBuffer?void 0:ArrayBuffer.prototype,"$ %ArrayIteratorPrototype%":o?a([][Symbol.iterator]()):void 0,"$ %ArrayPrototype%":Array.prototype,"$ %ArrayProto_entries%":Array.prototype.entries,"$ %ArrayProto_forEach%":Array.prototype.forEach,"$ %ArrayProto_keys%":Array.prototype.keys,"$ %ArrayProto_values%":Array.prototype.values,"$ %AsyncFromSyncIteratorPrototype%":void 0,"$ %AsyncFunction%":void 0,"$ %AsyncFunctionPrototype%":void 0,"$ %AsyncGenerator%":void 0,"$ %AsyncGeneratorFunction%":void 0,"$ %AsyncGeneratorPrototype%":void 0,"$ %AsyncIteratorPrototype%":s&&o&&Symbol.asyncIterator?s[Symbol.asyncIterator]():void 0,"$ %Atomics%":"undefined"==typeof Atomics?void 0:Atomics,"$ %Boolean%":Boolean,"$ %BooleanPrototype%":Boolean.prototype,"$ %DataView%":"undefined"==typeof DataView?void 0:DataView,"$ %DataViewPrototype%":"undefined"==typeof DataView?void 0:DataView.prototype,"$ %Date%":Date,"$ %DatePrototype%":Date.prototype,"$ %decodeURI%":decodeURI,"$ %decodeURIComponent%":decodeURIComponent,"$ %encodeURI%":encodeURI,"$ %encodeURIComponent%":encodeURIComponent,"$ %Error%":Error,"$ %ErrorPrototype%":Error.prototype,"$ %eval%":eval,"$ %EvalError%":EvalError,"$ %EvalErrorPrototype%":EvalError.prototype,"$ %Float32Array%":"undefined"==typeof Float32Array?void 0:Float32Array,"$ %Float32ArrayPrototype%":"undefined"==typeof Float32Array?void 0:Float32Array.prototype,"$ %Float64Array%":"undefined"==typeof Float64Array?void 0:Float64Array,"$ %Float64ArrayPrototype%":"undefined"==typeof Float64Array?void 0:Float64Array.prototype,"$ %Function%":Function,"$ %FunctionPrototype%":Function.prototype,"$ %Generator%":void 0,"$ %GeneratorFunction%":void 0,"$ %GeneratorPrototype%":void 0,"$ %Int8Array%":"undefined"==typeof Int8Array?void 0:Int8Array,"$ %Int8ArrayPrototype%":"undefined"==typeof Int8Array?void 0:Int8Array.prototype,"$ %Int16Array%":"undefined"==typeof Int16Array?void 0:Int16Array,"$ %Int16ArrayPrototype%":"undefined"==typeof Int16Array?void 0:Int8Array.prototype,"$ %Int32Array%":"undefined"==typeof Int32Array?void 0:Int32Array,"$ %Int32ArrayPrototype%":"undefined"==typeof Int32Array?void 0:Int32Array.prototype,"$ %isFinite%":isFinite,"$ %isNaN%":isNaN,"$ %IteratorPrototype%":o?a(a([][Symbol.iterator]())):void 0,"$ %JSON%":JSON,"$ %JSONParse%":JSON.parse,"$ %Map%":"undefined"==typeof Map?void 0:Map,"$ %MapIteratorPrototype%":"undefined"!=typeof Map&&o?a((new Map)[Symbol.iterator]()):void 0,"$ %MapPrototype%":"undefined"==typeof Map?void 0:Map.prototype,"$ %Math%":Math,"$ %Number%":Number,"$ %NumberPrototype%":Number.prototype,"$ %Object%":Object,"$ %ObjectPrototype%":Object.prototype,"$ %ObjProto_toString%":Object.prototype.toString,"$ %ObjProto_valueOf%":Object.prototype.valueOf,"$ %parseFloat%":parseFloat,"$ %parseInt%":parseInt,"$ %Promise%":"undefined"==typeof Promise?void 0:Promise,"$ %PromisePrototype%":"undefined"==typeof Promise?void 0:Promise.prototype,"$ %PromiseProto_then%":"undefined"==typeof Promise?void 0:Promise.prototype.then,"$ %Promise_all%":"undefined"==typeof Promise?void 0:Promise.all,"$ %Promise_reject%":"undefined"==typeof Promise?void 0:Promise.reject,"$ %Promise_resolve%":"undefined"==typeof Promise?void 0:Promise.resolve,"$ %Proxy%":"undefined"==typeof Proxy?void 0:Proxy,"$ %RangeError%":RangeError,"$ %RangeErrorPrototype%":RangeError.prototype,"$ %ReferenceError%":ReferenceError,"$ %ReferenceErrorPrototype%":ReferenceError.prototype,"$ %Reflect%":"undefined"==typeof Reflect?void 0:Reflect,"$ %RegExp%":RegExp,"$ %RegExpPrototype%":RegExp.prototype,"$ %Set%":"undefined"==typeof Set?void 0:Set,"$ %SetIteratorPrototype%":"undefined"!=typeof Set&&o?a((new Set)[Symbol.iterator]()):void 0,"$ %SetPrototype%":"undefined"==typeof Set?void 0:Set.prototype,"$ %SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,"$ %SharedArrayBufferPrototype%":"undefined"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer.prototype,"$ %String%":String,"$ %StringIteratorPrototype%":o?a(""[Symbol.iterator]()):void 0,"$ %StringPrototype%":String.prototype,"$ %Symbol%":o?Symbol:void 0,"$ %SymbolPrototype%":o?Symbol.prototype:void 0,"$ %SyntaxError%":SyntaxError,"$ %SyntaxErrorPrototype%":SyntaxError.prototype,"$ %ThrowTypeError%":i,"$ %TypedArray%":u,"$ %TypedArrayPrototype%":u?u.prototype:void 0,"$ %TypeError%":TypeError,"$ %TypeErrorPrototype%":TypeError.prototype,"$ %Uint8Array%":"undefined"==typeof Uint8Array?void 0:Uint8Array,"$ %Uint8ArrayPrototype%":"undefined"==typeof Uint8Array?void 0:Uint8Array.prototype,"$ %Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,"$ %Uint8ClampedArrayPrototype%":"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray.prototype,"$ %Uint16Array%":"undefined"==typeof Uint16Array?void 0:Uint16Array,"$ %Uint16ArrayPrototype%":"undefined"==typeof Uint16Array?void 0:Uint16Array.prototype,"$ %Uint32Array%":"undefined"==typeof Uint32Array?void 0:Uint32Array,"$ %Uint32ArrayPrototype%":"undefined"==typeof Uint32Array?void 0:Uint32Array.prototype,"$ %URIError%":URIError,"$ %URIErrorPrototype%":URIError.prototype,"$ %WeakMap%":"undefined"==typeof WeakMap?void 0:WeakMap,"$ %WeakMapPrototype%":"undefined"==typeof WeakMap?void 0:WeakMap.prototype,"$ %WeakSet%":"undefined"==typeof WeakSet?void 0:WeakSet,"$ %WeakSetPrototype%":"undefined"==typeof WeakSet?void 0:WeakSet.prototype};t.exports=function(t,e){if(arguments.length>1&&"boolean"!=typeof e)throw new TypeError('"allowMissing" argument must be a boolean');var r="$ "+t;if(!(r in f))throw new SyntaxError("intrinsic "+t+" does not exist!");if(void 0===f[r]&&!e)throw new TypeError("intrinsic "+t+" exists, but is not available. Please file an issue!");return f[r]}},function(t,e,r){"use strict";var n=r(99);t.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},function(t,e,r){"use strict";var n=r(192);t.exports=function(){return String.prototype.trim&&"​"==="​".trim()?String.prototype.trim:n}},function(t,e,r){"use strict";r(506);var n=function(t,e){return parseInt(t.slice(2*e+2,2*e+4),16)},i=function(t){return(t.length-2)/2},o=function(t){for(var e=[],r=2,n=t.length;r>6|192);else{if(i>55295&&i<56320){if(++n==t.length)return null;var o=t.charCodeAt(n);if(o<56320||o>57343)return null;r+=e((i=65536+((1023&i)<<10)+(1023&o))>>18|240),r+=e(i>>12&63|128)}else r+=e(i>>12|224);r+=e(i>>6&63|128)}r+=e(63&i|128)}}return r},toString:function(t){for(var e="",r=0,o=i(t);r127){if(a>191&&a<224){if(r>=o)return null;a=(31&a)<<6|63&n(t,r)}else if(a>223&&a<240){if(r+1>=o)return null;a=(15&a)<<12|(63&n(t,r))<<6|63&n(t,++r)}else{if(!(a>239&&a<248))return null;if(r+2>=o)return null;a=(7&a)<<18|(63&n(t,r))<<12|(63&n(t,++r))<<6|63&n(t,++r)}++r}if(a<=65535)e+=String.fromCharCode(a);else{if(!(a<=1114111))return null;a-=65536,e+=String.fromCharCode(a>>10|55296),e+=String.fromCharCode(1023&a|56320)}}return e},fromNumber:function(t){var e=t.toString(16);return e.length%2==0?"0x"+e:"0x0"+e},toNumber:function(t){return parseInt(t.slice(2),16)},fromNat:function(t){return"0x0"===t?"0x":t.length%2==0?t:"0x0"+t.slice(2)},toNat:function(t){return"0"===t[2]?"0x"+t.slice(3):t},fromArray:a,toArray:o,fromUint8Array:function(t){return a([].slice.call(t,0))},toUint8Array:function(t){return new Uint8Array(o(t))}}},function(t,e,r){"use strict";var n=r(198).version,i=r(29),o=r(274),a=r(61),s=r(143),u=r(477),f=r(478),c=r(18),h=function(){var t=this;i.packageInit(this,arguments),this.version=n,this.utils=c,this.eth=new o(this),this.shh=new u(this),this.bzz=new f(this);var e=this.setProvider;this.setProvider=function(r,n){return e.apply(t,arguments),t.eth.setRequestManager(t._requestManager),t.shh.setRequestManager(t._requestManager),t.bzz.setProvider(r),!0}};h.version=n,h.utils=c,h.modules={Eth:o,Net:a,Personal:s,Shh:u,Bzz:f},i.addProviders(h),t.exports=h},function(t){t.exports=JSON.parse('{"name":"web3","version":"1.3.4","description":"Ethereum JavaScript API","repository":"https://github.com/ethereum/web3.js","license":"LGPL-3.0","engines":{"node":">=8.0.0"},"main":"lib/index.js","bugs":{"url":"https://github.com/ethereum/web3.js/issues"},"keywords":["Ethereum","JavaScript","API"],"author":"ethereum.org","types":"types/index.d.ts","scripts":{"tsc":"tsc -b tsconfig.json","dtslint":"dtslint --localTs ../../node_modules/typescript/lib types"},"authors":[{"name":"Fabian Vogelsteller","email":"fabian@ethereum.org","homepage":"http://frozeman.de"},{"name":"Marek Kotewicz","email":"marek@parity.io","url":"https://github.com/debris"},{"name":"Marian Oancea","url":"https://github.com/cubedro"},{"name":"Gav Wood","email":"g@parity.io","homepage":"http://gavwood.com"},{"name":"Jeffery Wilcke","email":"jeffrey.wilcke@ethereum.org","url":"https://github.com/obscuren"}],"dependencies":{"web3-bzz":"1.3.4","web3-core":"1.3.4","web3-eth":"1.3.4","web3-eth-personal":"1.3.4","web3-net":"1.3.4","web3-shh":"1.3.4","web3-utils":"1.3.4"},"devDependencies":{"@types/node":"^12.12.6","dtslint":"^3.4.1","typescript":"^3.9.5"}}')},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(101).callbackify,o=r(10),a=r(9).errors,s=r(108),u=r(216),f=r(217),c=function t(e,r){this.provider=null,this.providers=t.providers,this.setProvider(e,r),this.subscriptions=new Map};c.givenProvider=f,c.providers={WebsocketProvider:r(218),HttpProvider:r(228),IpcProvider:r(246)},c.prototype.setProvider=function(t,e){var r=this;if(t&&"string"==typeof t&&this.providers)if(/^http(s)?:\/\//i.test(t))t=new this.providers.HttpProvider(t);else if(/^ws(s)?:\/\//i.test(t))t=new this.providers.WebsocketProvider(t);else if(t&&"object"===(0,n.default)(e)&&"function"==typeof e.connect)t=new this.providers.IpcProvider(t,e);else if(t)throw new Error("Can't autodetect provider for \""+t+'"');if(this.provider&&this.provider.connected&&this.clearSubscriptions(),this.provider=t||null,this.provider&&this.provider.on){"function"==typeof t.request?this.provider.on("message",(function(t){if(t&&"eth_subscription"===t.type&&t.data){var e=t.data;e.subscription&&r.subscriptions.has(e.subscription)&&r.subscriptions.get(e.subscription).callback(null,e.result)}})):this.provider.on("data",(function(t,e){(t=t||e).method&&t.params&&t.params.subscription&&r.subscriptions.has(t.params.subscription)&&r.subscriptions.get(t.params.subscription).callback(null,t.params.result)})),this.provider.on("connect",(function(){r.subscriptions.forEach((function(t){t.subscription.resubscribe()}))})),this.provider.on("error",(function(t){r.subscriptions.forEach((function(e){e.callback(t)}))}));var i=function(t){r._isCleanCloseEvent(t)&&!r._isIpcCloseError(t)||(r.subscriptions.forEach((function(e){e.callback(a.ConnectionCloseError(t)),r.subscriptions.delete(e.subscription.id)})),r.provider&&r.provider.emit&&r.provider.emit("error",a.ConnectionCloseError(t))),r.provider&&r.provider.emit&&r.provider.emit("end",t)};this.provider.on("close",i),this.provider.on("disconnect",i)}},c.prototype.send=function(t,e){if(e=e||function(){},!this.provider)return e(a.InvalidProvider());var r=t.method,n=t.params,o=s.toPayload(r,n),u=this._jsonrpcResultCallback(e,o);if(this.provider.request)i(this.provider.request.bind(this.provider))({method:r,params:n},e);else if(this.provider.sendAsync)this.provider.sendAsync(o,u);else{if(!this.provider.send)throw new Error("Provider does not have a request or send method to use.");this.provider.send(o,u)}},c.prototype.sendBatch=function(t,e){if(!this.provider)return e(a.InvalidProvider());var r=s.toBatchPayload(t);this.provider[this.provider.sendAsync?"sendAsync":"send"](r,(function(t,r){return t?e(t):o.isArray(r)?void e(null,r):e(a.InvalidResponse(r))}))},c.prototype.addSubscription=function(t,e){if(!this.provider.on)throw new Error("The provider doesn't support subscriptions: "+this.provider.constructor.name);this.subscriptions.set(t.id,{callback:e,subscription:t})},c.prototype.removeSubscription=function(t,e){if(this.subscriptions.has(t)){var r=this.subscriptions.get(t).subscription.options.type;return this.subscriptions.delete(t),void this.send({method:r+"_unsubscribe",params:[t]},e)}"function"==typeof e&&e(null)},c.prototype.clearSubscriptions=function(t){try{var e=this;return this.subscriptions.size>0&&this.subscriptions.forEach((function(r,n){t&&"syncing"===r.name||e.removeSubscription(n)})),this.provider.reset&&this.provider.reset(),!0}catch(t){throw new Error("Error while clearing subscriptions: ".concat(t))}},c.prototype._isCleanCloseEvent=function(t){return"object"===(0,n.default)(t)&&([1e3].includes(t.code)||!0===t.wasClean)},c.prototype._isIpcCloseError=function(t){return"boolean"==typeof t&&t},c.prototype._jsonrpcResultCallback=function(t,e){return function(r,n){return n&&n.id&&e.id!==n.id?t(new Error("Wrong response id ".concat(n.id," (expected: ").concat(e.id,") in ").concat(JSON.stringify(e)))):r?t(r):n&&n.error?t(a.ErrorResponse(n)):s.isValidResponse(n)?void t(null,n.result):t(a.InvalidResponse(n))}},t.exports={Manager:c,BatchManager:u}},function(t,e,r){"use strict";var n=r(0)(r(1));t.exports=function(t){return t&&"object"===(0,n.default)(t)&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},function(t,e,r){"use strict";var n=r(0)(r(1));t.exports={ErrorResponse:function(t){var e=t&&t.error&&t.error.message?t.error.message:JSON.stringify(t),r=t.error&&t.error.data?t.error.data:null,n=new Error("Returned error: "+e);return n.data=r,n},InvalidNumberOfParams:function(t,e,r){return new Error('Invalid number of parameters for "'+r+'". Got '+t+" expected "+e+"!")},InvalidConnection:function(t,e){return this.ConnectionError("CONNECTION ERROR: Couldn't connect to node "+t+".",e)},InvalidProvider:function(){return new Error("Provider not set or invalid")},InvalidResponse:function(t){var e=t&&t.error&&t.error.message?t.error.message:"Invalid JSON RPC response: "+JSON.stringify(t);return new Error(e)},ConnectionTimeout:function(t){return new Error("CONNECTION TIMEOUT: timeout of "+t+" ms achived")},ConnectionNotOpenError:function(t){return this.ConnectionError("connection not open on send()",t)},ConnectionCloseError:function(t){return"object"===(0,n.default)(t)&&t.code&&t.reason?this.ConnectionError("CONNECTION ERROR: The connection got closed with the close code `"+t.code+"` and the following reason string `"+t.reason+"`",t):new Error("CONNECTION ERROR: The connection closed unexpectedly")},MaxAttemptsReachedOnReconnectingError:function(){return new Error("Maximum number of reconnect attempts reached!")},PendingRequestsOnReconnectingError:function(){return new Error("CONNECTION ERROR: Provider started to reconnect before the response got received!")},ConnectionError:function(t,e){var r=new Error(t);return e&&(r.code=e.code,r.reason=e.reason),r},RevertInstructionError:function(t,e){var r=new Error("Your request got reverted with the following reason string: "+t);return r.reason=t,r.signature=e,r},TransactionRevertInstructionError:function(t,e,r){var n=new Error("Transaction has been reverted by the EVM:\n"+JSON.stringify(r,null,2));return n.reason=t,n.signature=e,n.receipt=r,n},TransactionError:function(t,e){var r=new Error(t);return r.receipt=e,r},NoContractAddressFoundError:function(t){return this.TransactionError("The transaction receipt didn't contain a contract address.",t)},ContractCodeNotStoredError:function(t){return this.TransactionError("The contract code couldn't be stored, please check your gas limit.",t)},TransactionRevertedWithoutReasonError:function(t){return this.TransactionError("Transaction has been reverted by the EVM:\n"+JSON.stringify(t,null,2),t)},TransactionOutOfGasError:function(t){return this.TransactionError("Transaction ran out of gas. Please provide more gas:\n"+JSON.stringify(t,null,2),t)},ResolverMethodMissingError:function(t,e){return new Error("The resolver at "+t+'does not implement requested method: "'+e+'".')},ContractMissingABIError:function(){return new Error("You must provide the json interface of the contract when instantiating a contract object.")},ContractOnceRequiresCallbackError:function(){return new Error("Once requires a callback as the second parameter.")},ContractEventDoesNotExistError:function(t){return new Error('Event "'+t+"\" doesn't exist in this contract.")},ContractReservedEventError:function(t){return new Error('The event "'+t+"\" is a reserved event name, you can't use it.")},ContractMissingDeployDataError:function(){return new Error('No "data" specified in neither the given options, nor the default options.')},ContractNoAddressDefinedError:function(){return new Error("This contract object doesn't have address set yet, please set an address first.")},ContractNoFromAddressDefinedError:function(){return new Error('No "from" address specified in neither the given options, nor the default options.')}}},function(t,e,r){"use strict";var n=r(0),i=n(r(102)),o=n(r(1));function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function s(t){for(var e=1;e2)throw new Error("[ethjs-unit] while converting number "+t+" to wei, too many decimal points");var d=h[0],l=h[1];if(d||(d="0"),l||(l="0"),l.length>o)throw new Error("[ethjs-unit] while converting number "+t+" to wei, too many decimal places");for(;l.length0?a-4:a;for(r=0;r>16&255,u[c++]=e>>8&255,u[c++]=255&e;2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[c++]=255&e);1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e);return u},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],a=0,s=r-i;as?s:a+16383));1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function c(t,e,r){for(var i,o,a=[],s=e;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(t,e,r){"use strict";e.read=function(t,e,r,n,i){var o,a,s=8*i-n-1,u=(1<>1,c=-7,h=r?i-1:0,d=r?-1:1,l=t[e+h];for(h+=d,o=l&(1<<-c)-1,l>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=d,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+t[e+h],h+=d,c-=8);if(0===o)o=1-f;else{if(o===u)return a?NaN:1/0*(l?-1:1);a+=Math.pow(2,n),o-=f}return(l?-1:1)*a*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var a,s,u,f=8*o-i-1,c=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,l=n?0:o-1,p=n?1:-1,b=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),(e+=a+h>=1?d/u:d*Math.pow(2,1-h))*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,i),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[r+l]=255&s,l+=p,s/=256,i-=8);for(a=a<0;t[r+l]=255&a,l+=p,a/=256,f-=8);t[r+l-p]|=128*b}},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(103),o=r(105);t.exports=function(t){if("string"==typeof t||"number"==typeof t){var e=new i(1),r=String(t).toLowerCase().trim(),a="0x"===r.substr(0,2)||"-0x"===r.substr(0,3),s=o(r);if("-"===s.substr(0,1)&&(s=o(s.slice(1)),e=new i(-1,10)),!(s=""===s?"0":s).match(/^-?[0-9]+$/)&&s.match(/^[0-9A-Fa-f]+$/)||s.match(/^[a-fA-F]+$/)||!0===a&&s.match(/^[0-9A-Fa-f]+$/))return new i(s,16).mul(e);if((s.match(/^-?[0-9]+$/)||""===s)&&!1===a)return new i(s,10).mul(e)}else if("object"===(0,n.default)(t)&&t.toString&&!t.pop&&!t.push&&t.toString(10).match(/^-?[0-9]+$/)&&(t.mul||t.dividedToIntegerBy))return new i(t.toString(10),10);throw new Error("[number-to-bn] while converting number "+JSON.stringify(t)+" to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.")}},function(t,e,r){"use strict";var n=r(0)(r(1));t.exports=function(t){if("string"!=typeof t)throw new Error("[is-hex-prefixed] value must be type 'string', is currently type "+(0,n.default)(t)+", while checking isHexPrefixed.");return"0x"===t.slice(0,2)}},function(t,e){},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(210),o=r(105);t.exports=function(t){if("string"==typeof t||"number"==typeof t){var e=new i(1),r=String(t).toLowerCase().trim(),a="0x"===r.substr(0,2)||"-0x"===r.substr(0,3),s=o(r);if("-"===s.substr(0,1)&&(s=o(s.slice(1)),e=new i(-1,10)),!(s=""===s?"0":s).match(/^-?[0-9]+$/)&&s.match(/^[0-9A-Fa-f]+$/)||s.match(/^[a-fA-F]+$/)||!0===a&&s.match(/^[0-9A-Fa-f]+$/))return new i(s,16).mul(e);if((s.match(/^-?[0-9]+$/)||""===s)&&!1===a)return new i(s,10).mul(e)}else if("object"===(0,n.default)(t)&&t.toString&&!t.pop&&!t.push&&t.toString(10).match(/^-?[0-9]+$/)&&(t.mul||t.dividedToIntegerBy))return new i(t.toString(10),10);throw new Error("[number-to-bn] while converting number "+JSON.stringify(t)+" to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.")}},function(t,e,r){"use strict";(function(t){var e=r(0)(r(1));!function(t,n){function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function o(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function a(t,e,r){if(a.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var s;"object"===(0,e.default)(t)?t.exports=a:(void 0).BN=a,a.BN=a,a.wordSize=26;try{s=r(2).Buffer}catch(t){}function u(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function f(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"===(0,e.default)(t)&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,r,n){if("number"==typeof t)return this._initNumber(t,r,n);if("object"===(0,e.default)(t))return this._initArray(t,r,n);"hex"===r&&(r=16),i(r===(0|r)&&r>=2&&r<=36);var o=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&o++,16===r?this._parseHex(t,o):this._parseBase(t,r,o),"-"===t[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),r,n)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(i("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,(s+=24)>=26&&(s-=26,o++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=u(t,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==e&&(i=u(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,u=0,c=r;c1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,e.length-1),l=Math.max(0,f-t.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|t.words[p])*(o=0|e.words[l])+h)/67108864|0,h=67108863&a}r.words[f]=0|h,u=0|c}return 0!==u?r.words[f]=0|u:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215)||a!==this.length-1?c[6-u.length]+u+r:u+r,(n+=2)>=26&&(n-=26,a--)}for(0!==o&&(r=o.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var f=h[t],l=d[t];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(l).toString(t);r=(p=p.idivn(l)).isZero()?b+r:c[f-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return i(void 0!==s),this.toArrayLike(s,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,f=new t(o),c=this.clone();if(u){for(s=0;!c.isZero();s++)a=c.andln(255),c.iushrn(8),f[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){i("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){i("number"==typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,l=0|a[1],p=8191&l,b=l>>>13,m=0|a[2],y=8191&m,v=m>>>13,g=0|a[3],w=8191&g,_=g>>>13,k=0|a[4],A=8191&k,S=k>>>13,M=0|a[5],E=8191&M,x=M>>>13,I=0|a[6],O=8191&I,P=I>>>13,C=0|a[7],B=8191&C,T=C>>>13,R=0|a[8],U=8191&R,N=R>>>13,j=0|a[9],L=8191&j,F=j>>>13,D=0|s[0],q=8191&D,z=D>>>13,H=0|s[1],K=8191&H,V=H>>>13,G=0|s[2],W=8191&G,Y=G>>>13,$=0|s[3],J=8191&$,Z=$>>>13,X=0|s[4],Q=8191&X,tt=X>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ft=st>>>13,ct=0|s[8],ht=8191&ct,dt=ct>>>13,lt=0|s[9],pt=8191<,bt=lt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(f+(n=Math.imul(h,q))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,q)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(p,q),i=(i=Math.imul(p,z))+Math.imul(b,q)|0,o=Math.imul(b,z);var yt=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,V)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,V)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(y,q),i=(i=Math.imul(y,z))+Math.imul(v,q)|0,o=Math.imul(v,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,V)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,V)|0;var vt=(f+(n=n+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,W)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(w,q),i=(i=Math.imul(w,z))+Math.imul(_,q)|0,o=Math.imul(_,z),n=n+Math.imul(y,K)|0,i=(i=i+Math.imul(y,V)|0)+Math.imul(v,K)|0,o=o+Math.imul(v,V)|0,n=n+Math.imul(p,W)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,W)|0,o=o+Math.imul(b,Y)|0;var gt=(f+(n=n+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,J)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(S,q)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,V)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,V)|0,n=n+Math.imul(y,W)|0,i=(i=i+Math.imul(y,Y)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,Y)|0,n=n+Math.imul(p,J)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,J)|0,o=o+Math.imul(b,Z)|0;var wt=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,tt)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,tt)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(E,q),i=(i=Math.imul(E,z))+Math.imul(x,q)|0,o=Math.imul(x,z),n=n+Math.imul(A,K)|0,i=(i=i+Math.imul(A,V)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,V)|0,n=n+Math.imul(w,W)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Y)|0,n=n+Math.imul(y,J)|0,i=(i=i+Math.imul(y,Z)|0)+Math.imul(v,J)|0,o=o+Math.imul(v,Z)|0,n=n+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,tt)|0)+Math.imul(b,Q)|0,o=o+Math.imul(b,tt)|0;var _t=(f+(n=n+Math.imul(h,rt)|0)|0)+((8191&(i=(i=i+Math.imul(h,nt)|0)+Math.imul(d,rt)|0))<<13)|0;f=((o=o+Math.imul(d,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,q),i=(i=Math.imul(O,z))+Math.imul(P,q)|0,o=Math.imul(P,z),n=n+Math.imul(E,K)|0,i=(i=i+Math.imul(E,V)|0)+Math.imul(x,K)|0,o=o+Math.imul(x,V)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,Y)|0)+Math.imul(S,W)|0,o=o+Math.imul(S,Y)|0,n=n+Math.imul(w,J)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,J)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(y,Q)|0,i=(i=i+Math.imul(y,tt)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,tt)|0,n=n+Math.imul(p,rt)|0,i=(i=i+Math.imul(p,nt)|0)+Math.imul(b,rt)|0,o=o+Math.imul(b,nt)|0;var kt=(f+(n=n+Math.imul(h,ot)|0)|0)+((8191&(i=(i=i+Math.imul(h,at)|0)+Math.imul(d,ot)|0))<<13)|0;f=((o=o+Math.imul(d,at)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,q),i=(i=Math.imul(B,z))+Math.imul(T,q)|0,o=Math.imul(T,z),n=n+Math.imul(O,K)|0,i=(i=i+Math.imul(O,V)|0)+Math.imul(P,K)|0,o=o+Math.imul(P,V)|0,n=n+Math.imul(E,W)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(x,W)|0,o=o+Math.imul(x,Y)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,Z)|0)+Math.imul(S,J)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,tt)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,tt)|0,n=n+Math.imul(y,rt)|0,i=(i=i+Math.imul(y,nt)|0)+Math.imul(v,rt)|0,o=o+Math.imul(v,nt)|0,n=n+Math.imul(p,ot)|0,i=(i=i+Math.imul(p,at)|0)+Math.imul(b,ot)|0,o=o+Math.imul(b,at)|0;var At=(f+(n=n+Math.imul(h,ut)|0)|0)+((8191&(i=(i=i+Math.imul(h,ft)|0)+Math.imul(d,ut)|0))<<13)|0;f=((o=o+Math.imul(d,ft)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(U,q),i=(i=Math.imul(U,z))+Math.imul(N,q)|0,o=Math.imul(N,z),n=n+Math.imul(B,K)|0,i=(i=i+Math.imul(B,V)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,V)|0,n=n+Math.imul(O,W)|0,i=(i=i+Math.imul(O,Y)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,Y)|0,n=n+Math.imul(E,J)|0,i=(i=i+Math.imul(E,Z)|0)+Math.imul(x,J)|0,o=o+Math.imul(x,Z)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=(i=i+Math.imul(w,nt)|0)+Math.imul(_,rt)|0,o=o+Math.imul(_,nt)|0,n=n+Math.imul(y,ot)|0,i=(i=i+Math.imul(y,at)|0)+Math.imul(v,ot)|0,o=o+Math.imul(v,at)|0,n=n+Math.imul(p,ut)|0,i=(i=i+Math.imul(p,ft)|0)+Math.imul(b,ut)|0,o=o+Math.imul(b,ft)|0;var St=(f+(n=n+Math.imul(h,ht)|0)|0)+((8191&(i=(i=i+Math.imul(h,dt)|0)+Math.imul(d,ht)|0))<<13)|0;f=((o=o+Math.imul(d,dt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(L,q),i=(i=Math.imul(L,z))+Math.imul(F,q)|0,o=Math.imul(F,z),n=n+Math.imul(U,K)|0,i=(i=i+Math.imul(U,V)|0)+Math.imul(N,K)|0,o=o+Math.imul(N,V)|0,n=n+Math.imul(B,W)|0,i=(i=i+Math.imul(B,Y)|0)+Math.imul(T,W)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(O,J)|0,i=(i=i+Math.imul(O,Z)|0)+Math.imul(P,J)|0,o=o+Math.imul(P,Z)|0,n=n+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,tt)|0)+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=(i=i+Math.imul(w,at)|0)+Math.imul(_,ot)|0,o=o+Math.imul(_,at)|0,n=n+Math.imul(y,ut)|0,i=(i=i+Math.imul(y,ft)|0)+Math.imul(v,ut)|0,o=o+Math.imul(v,ft)|0,n=n+Math.imul(p,ht)|0,i=(i=i+Math.imul(p,dt)|0)+Math.imul(b,ht)|0,o=o+Math.imul(b,dt)|0;var Mt=(f+(n=n+Math.imul(h,pt)|0)|0)+((8191&(i=(i=i+Math.imul(h,bt)|0)+Math.imul(d,pt)|0))<<13)|0;f=((o=o+Math.imul(d,bt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,V))+Math.imul(F,K)|0,o=Math.imul(F,V),n=n+Math.imul(U,W)|0,i=(i=i+Math.imul(U,Y)|0)+Math.imul(N,W)|0,o=o+Math.imul(N,Y)|0,n=n+Math.imul(B,J)|0,i=(i=i+Math.imul(B,Z)|0)+Math.imul(T,J)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,tt)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,tt)|0,n=n+Math.imul(E,rt)|0,i=(i=i+Math.imul(E,nt)|0)+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(A,ot)|0,i=(i=i+Math.imul(A,at)|0)+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=(i=i+Math.imul(w,ft)|0)+Math.imul(_,ut)|0,o=o+Math.imul(_,ft)|0,n=n+Math.imul(y,ht)|0,i=(i=i+Math.imul(y,dt)|0)+Math.imul(v,ht)|0,o=o+Math.imul(v,dt)|0;var Et=(f+(n=n+Math.imul(p,pt)|0)|0)+((8191&(i=(i=i+Math.imul(p,bt)|0)+Math.imul(b,pt)|0))<<13)|0;f=((o=o+Math.imul(b,bt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,W),i=(i=Math.imul(L,Y))+Math.imul(F,W)|0,o=Math.imul(F,Y),n=n+Math.imul(U,J)|0,i=(i=i+Math.imul(U,Z)|0)+Math.imul(N,J)|0,o=o+Math.imul(N,Z)|0,n=n+Math.imul(B,Q)|0,i=(i=i+Math.imul(B,tt)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(O,rt)|0,i=(i=i+Math.imul(O,nt)|0)+Math.imul(P,rt)|0,o=o+Math.imul(P,nt)|0,n=n+Math.imul(E,ot)|0,i=(i=i+Math.imul(E,at)|0)+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(A,ut)|0,i=(i=i+Math.imul(A,ft)|0)+Math.imul(S,ut)|0,o=o+Math.imul(S,ft)|0,n=n+Math.imul(w,ht)|0,i=(i=i+Math.imul(w,dt)|0)+Math.imul(_,ht)|0,o=o+Math.imul(_,dt)|0;var xt=(f+(n=n+Math.imul(y,pt)|0)|0)+((8191&(i=(i=i+Math.imul(y,bt)|0)+Math.imul(v,pt)|0))<<13)|0;f=((o=o+Math.imul(v,bt)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(L,J),i=(i=Math.imul(L,Z))+Math.imul(F,J)|0,o=Math.imul(F,Z),n=n+Math.imul(U,Q)|0,i=(i=i+Math.imul(U,tt)|0)+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(B,rt)|0,i=(i=i+Math.imul(B,nt)|0)+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(O,ot)|0,i=(i=i+Math.imul(O,at)|0)+Math.imul(P,ot)|0,o=o+Math.imul(P,at)|0,n=n+Math.imul(E,ut)|0,i=(i=i+Math.imul(E,ft)|0)+Math.imul(x,ut)|0,o=o+Math.imul(x,ft)|0,n=n+Math.imul(A,ht)|0,i=(i=i+Math.imul(A,dt)|0)+Math.imul(S,ht)|0,o=o+Math.imul(S,dt)|0;var It=(f+(n=n+Math.imul(w,pt)|0)|0)+((8191&(i=(i=i+Math.imul(w,bt)|0)+Math.imul(_,pt)|0))<<13)|0;f=((o=o+Math.imul(_,bt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,tt))+Math.imul(F,Q)|0,o=Math.imul(F,tt),n=n+Math.imul(U,rt)|0,i=(i=i+Math.imul(U,nt)|0)+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(B,ot)|0,i=(i=i+Math.imul(B,at)|0)+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(O,ut)|0,i=(i=i+Math.imul(O,ft)|0)+Math.imul(P,ut)|0,o=o+Math.imul(P,ft)|0,n=n+Math.imul(E,ht)|0,i=(i=i+Math.imul(E,dt)|0)+Math.imul(x,ht)|0,o=o+Math.imul(x,dt)|0;var Ot=(f+(n=n+Math.imul(A,pt)|0)|0)+((8191&(i=(i=i+Math.imul(A,bt)|0)+Math.imul(S,pt)|0))<<13)|0;f=((o=o+Math.imul(S,bt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(L,rt),i=(i=Math.imul(L,nt))+Math.imul(F,rt)|0,o=Math.imul(F,nt),n=n+Math.imul(U,ot)|0,i=(i=i+Math.imul(U,at)|0)+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(B,ut)|0,i=(i=i+Math.imul(B,ft)|0)+Math.imul(T,ut)|0,o=o+Math.imul(T,ft)|0,n=n+Math.imul(O,ht)|0,i=(i=i+Math.imul(O,dt)|0)+Math.imul(P,ht)|0,o=o+Math.imul(P,dt)|0;var Pt=(f+(n=n+Math.imul(E,pt)|0)|0)+((8191&(i=(i=i+Math.imul(E,bt)|0)+Math.imul(x,pt)|0))<<13)|0;f=((o=o+Math.imul(x,bt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(L,ot),i=(i=Math.imul(L,at))+Math.imul(F,ot)|0,o=Math.imul(F,at),n=n+Math.imul(U,ut)|0,i=(i=i+Math.imul(U,ft)|0)+Math.imul(N,ut)|0,o=o+Math.imul(N,ft)|0,n=n+Math.imul(B,ht)|0,i=(i=i+Math.imul(B,dt)|0)+Math.imul(T,ht)|0,o=o+Math.imul(T,dt)|0;var Ct=(f+(n=n+Math.imul(O,pt)|0)|0)+((8191&(i=(i=i+Math.imul(O,bt)|0)+Math.imul(P,pt)|0))<<13)|0;f=((o=o+Math.imul(P,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ut),i=(i=Math.imul(L,ft))+Math.imul(F,ut)|0,o=Math.imul(F,ft),n=n+Math.imul(U,ht)|0,i=(i=i+Math.imul(U,dt)|0)+Math.imul(N,ht)|0,o=o+Math.imul(N,dt)|0;var Bt=(f+(n=n+Math.imul(B,pt)|0)|0)+((8191&(i=(i=i+Math.imul(B,bt)|0)+Math.imul(T,pt)|0))<<13)|0;f=((o=o+Math.imul(T,bt)|0)+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Tt=(f+(n=n+Math.imul(U,pt)|0)|0)+((8191&(i=(i=i+Math.imul(U,bt)|0)+Math.imul(N,pt)|0))<<13)|0;f=((o=o+Math.imul(N,bt)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863;var Rt=(f+(n=Math.imul(L,pt))|0)+((8191&(i=(i=Math.imul(L,bt))+Math.imul(F,pt)|0))<<13)|0;return f=((o=Math.imul(F,bt))+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,u[0]=mt,u[1]=yt,u[2]=vt,u[3]=gt,u[4]=wt,u[5]=_t,u[6]=kt,u[7]=At,u[8]=St,u[9]=Mt,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Ct,u[16]=Bt,u[17]=Tt,u[18]=Rt,0!==f&&(u[19]=f,r.length++),r};function b(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(p=l),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?l(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0)>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}(this,t,e):b(this,t,e)},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},m.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,f=0;f=0&&(0!==c||f>=n);f--){var h=0|this.words[f];this.words[f]=c<<26-o|h>>>o,c=h&s}return u&&0!==c&&(u.words[u.length++]=c),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){i("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(i("number"==typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,u=n.length-i.length;if("mod"!==e){(s=new a(null)).length=u+1,s.words=new Array(s.length);for(var f=0;f=0;h--){var d=67108864*(0|n.words[i.length+h])+(0|n.words[i.length+h-1]);for(d=Math.min(d/o|0,67108863),n._ishlnsubmul(i,d,h);0!==n.negative;)d--,n.negative=0,n._ishlnsubmul(i,1,h),n.isZero()||(n.negative^=1);s&&(s.words[h]=d)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:n,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},a.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n=new a(1),o=new a(0),s=new a(0),u=new a(1),f=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++f;for(var c=r.clone(),h=e.clone();!e.isZero();){for(var d=0,l=1;0==(e.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(e.iushrn(d);d-- >0;)(n.isOdd()||o.isOdd())&&(n.iadd(c),o.isub(h)),n.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);e.cmp(r)>=0?(e.isub(r),n.isub(s),o.isub(u)):(r.isub(e),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},a.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var n,o=new a(1),s=new a(0),u=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(e.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(e.iushrn(f);f-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var h=0,d=1;0==(r.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(r.iushrn(h);h-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(n=0===e.cmpn(1)?o:s).cmpn(0)<0&&n.iadd(t),n},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){i("number"==typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new A(t)},a.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function g(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function A(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function S(t){A.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},o(g,v),g.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=o}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},g.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(y[t])return y[t];var e;if("k256"===t)e=new g;else if("p224"===t)e=new w;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new k}return y[t]=e,e},A.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},A.prototype._verify2=function(t,e){i(0==(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},A.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},A.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},A.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},A.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},A.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},A.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},A.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},A.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},A.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},A.prototype.isqr=function(t){return this.imul(t,t.clone())},A.prototype.sqr=function(t){return this.mul(t,t)},A.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var n=this.m.subn(1),o=0;!n.isZero()&&0===n.andln(1);)o++,n.iushrn(1);i(!n.isZero());var s=new a(1).toRed(this),u=s.redNeg(),f=this.m.subn(1).iushrn(1),c=this.m.bitLength();for(c=new a(2*c*c).toRed(this);0!==this.pow(c,f).cmp(u);)c.redIAdd(u);for(var h=this.pow(c,n),d=this.pow(t,n.addn(1).iushrn(1)),l=this.pow(t,n),p=o;0!==l.cmp(s);){for(var b=l,m=0;0!==b.cmp(s);m++)b=b.redSqr();i(m=0;n--){for(var f=e.words[n],c=u-1;c>=0;c--){var h=f>>c&1;i!==r[0]&&(i=this.sqr(i)),0!==h||0!==o?(o<<=1,o|=h,(4===++s||0===n&&0===c)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}u=26}return i},A.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},A.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new S(t)},o(S,A),S.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},S.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},S.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},S.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t)}).call(this,r(24)(t))},function(t,e,r){"use strict"; +/*! https://mths.be/utf8js v3.0.0 by @mathias */!function(t){var e,r,n,i=String.fromCharCode;function o(t){for(var e,r,n=[],i=0,o=t.length;i=55296&&e<=56319&&i=55296&&t<=57343)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value")}function s(t,e){return i(t>>e&63|128)}function u(t){if(0==(4294967168&t))return i(t);var e="";return 0==(4294965248&t)?e=i(t>>6&31|192):0==(4294901760&t)?(a(t),e=i(t>>12&15|224),e+=s(t,6)):0==(4292870144&t)&&(e=i(t>>18&7|240),e+=s(t,12),e+=s(t,6)),e+=i(63&t|128)}function f(){if(n>=r)throw Error("Invalid byte index");var t=255&e[n];if(n++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function c(){var t,i;if(n>r)throw Error("Invalid byte index");if(n==r)return!1;if(t=255&e[n],n++,0==(128&t))return t;if(192==(224&t)){if((i=(31&t)<<6|f())>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&t)){if((i=(15&t)<<12|f()<<6|f())>=2048)return a(i),i;throw Error("Invalid continuation byte")}if(240==(248&t)&&(i=(7&t)<<18|f()<<12|f()<<6|f())>=65536&&i<=1114111)return i;throw Error("Invalid UTF-8 detected")}t.version="3.0.0",t.encode=function(t){for(var e=o(t),r=e.length,n=-1,i="";++n65535&&(o+=i((e-=65536)>>>10&1023|55296),e=56320|1023&e),o+=i(e);return o}(s)}}(e)},function(t,e,r){"use strict";var n=r(0)(r(1));Object.defineProperty(e,"__esModule",{value:!0});var i=r(213);function o(t){return"string"==typeof t&&(!!/^(0x)?[0-9a-f]{512}$/i.test(t)&&!(!/^(0x)?[0-9a-f]{512}$/.test(t)&&!/^(0x)?[0-9A-F]{512}$/.test(t)))}function a(t,e){"object"===(0,n.default)(e)&&e.constructor===Uint8Array&&(e=i.bytesToHex(e));for(var r=i.keccak256(e).replace("0x",""),o=0;o<12;o+=4){var a=(parseInt(r.substr(o,2),16)<<8)+parseInt(r.substr(o+2,2),16)&2047,u=1<=48&&t<=57)return t-48;if(t>=65&&t<=70)return t-55;if(t>=97&&t<=102)return t-87;throw new Error("invalid bloom")}function u(t){return"string"==typeof t&&(!!/^(0x)?[0-9a-f]{64}$/i.test(t)&&!(!/^(0x)?[0-9a-f]{64}$/.test(t)&&!/^(0x)?[0-9A-F]{64}$/.test(t)))}function f(t){return"string"==typeof t&&(!!t.match(/^(0x)?[0-9a-fA-F]{40}$/)||!!t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/))}e.isBloom=o,e.isInBloom=a,e.isUserEthereumAddressInBloom=function(t,e){if(!o(t))throw new Error("Invalid bloom given");if(!f(e))throw new Error('Invalid ethereum address given: "'.concat(e,'"'));return a(t,i.padLeft(e,64))},e.isContractAddressInBloom=function(t,e){if(!o(t))throw new Error("Invalid bloom given");if(!f(e))throw new Error('Invalid contract address given: "'.concat(e,'"'));return a(t,e)},e.isTopicInBloom=function(t,e){if(!o(t))throw new Error("Invalid bloom given");if(!u(e))throw new Error("Invalid topic");return a(t,e)},e.isTopic=u,e.isAddress=f},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(214);function i(t){if(null==t)throw new Error("cannot convert null value to array");if("string"==typeof t){var e=t.match(/^(0x)?[0-9a-fA-F]*$/);if(!e)throw new Error("invalid hexidecimal string");if("0x"!==e[1])throw new Error("hex string must have 0x prefix");(t=t.substring(2)).length%2&&(t="0"+t);for(var r=[],n=0;n=256||parseInt(String(r))!=r)return!1}return!0}(t))return o(new Uint8Array(t));throw new Error("invalid arrayify value")}function o(t){return t.slice||(t.slice=function(){var e=Array.prototype.slice.call(arguments);return o(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}e.keccak256=function(t){return"0x"+n.keccak_256(i(t))},e.padLeft=function(t,e){var r=/^0x/i.test(t)||"number"==typeof t,n=e-(t=t.toString().replace(/^0x/i,"")).length+1>=0?e-t.length+1:0;return(r?"0x":"")+new Array(n).join("0")+t},e.bytesToHex=function(t){for(var e=[],r=0;r>>4).toString(16)),e.push((15&t[r]).toString(16));return"0x".concat(e.join("").replace(/^0+/,""))},e.toByteArray=i},function(t,e,r){"use strict";(function(t,n,i){var o,a=r(0)(r(1)); /** * [js-sha3]{@link https://github.com/emn178/js-sha3} * @@ -27,12 +27,12 @@ function o(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r * @copyright Chen, Yi-Cyuan 2015-2018 * @license MIT */ -!function(){var s="input is invalid type",f="object"===("undefined"==typeof window?"undefined":(0,a.default)(window)),u=f?window:{};u.JS_SHA3_NO_WINDOW&&(f=!1);var c=!f&&"object"===("undefined"==typeof self?"undefined":(0,a.default)(self));!u.JS_SHA3_NO_NODE_JS&&"object"===(void 0===e?"undefined":(0,a.default)(e))&&e.versions&&e.versions.node?u=n:c&&(u=self);var h=!u.JS_SHA3_NO_COMMON_JS&&"object"===(0,a.default)(i)&&i.exports,d=r(77),l=!u.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,p="0123456789abcdef".split(""),b=[4,1024,262144,67108864],m=[0,8,16,24],v=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],y=[224,256,384,512],g=[128,256],w=["hex","buffer","arrayBuffer","array","digest"],_={128:168,256:136};!u.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!l||!u.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"===(0,a.default)(e)&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var k=function(e,t,r){return function(n){return new j(e,t,e).update(n)[r]()}},A=function(e,t,r){return function(n,i){return new j(e,t,i).update(n)[r]()}},S=function(e,t,r){return function(t,n,i,o){return P["cshake"+e].update(t,n,i,o)[r]()}},E=function(e,t,r){return function(t,n,i,o){return P["kmac"+e].update(t,n,i,o)[r]()}},M=function(e,t,r,n){for(var i=0;i>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function L(e,t,r){j.call(this,e,t,r)}j.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var t,r=(0,a.default)(e);if("string"!==r){if("object"!==r)throw new Error(s);if(null===e)throw new Error(s);if(l&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||l&&ArrayBuffer.isView(e)))throw new Error(s);t=!0}for(var n,i,o=this.blocks,f=this.byteCount,u=e.length,c=this.blockCount,h=0,d=this.s;h>2]|=e[h]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|63&i)<=57344?(o[n>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=f){for(this.start=n-f,this.block=o[c],n=0;n>=8);r>0;)i.unshift(r),r=255&(e>>=8),++n;return t?i.push(n):i.unshift(n),this.update(i),i.length},j.prototype.encodeString=function(e){var t,r=(0,a.default)(e);if("string"!==r){if("object"!==r)throw new Error(s);if(null===e)throw new Error(s);if(l&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||l&&ArrayBuffer.isView(e)))throw new Error(s);t=!0}var n=0,i=e.length;if(t)n=i;else for(var o=0;o=57344?n+=3:(f=65536+((1023&f)<<10|1023&e.charCodeAt(++o)),n+=4)}return n+=this.encode(8*n),this.update(e),n},j.prototype.bytepad=function(e,t){for(var r=this.encode(t),n=0;n>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t>4&15]+p[15&e]+p[e>>12&15]+p[e>>8&15]+p[e>>20&15]+p[e>>16&15]+p[e>>28&15]+p[e>>24&15];a%t==0&&(F(r),o=0)}return i&&(e=r[o],s+=p[e>>4&15]+p[15&e],i>1&&(s+=p[e>>12&15]+p[e>>8&15]),i>2&&(s+=p[e>>20&15]+p[e>>16&15])),s},j.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var f=new Uint32Array(e);a>8&255,f[e+2]=t>>16&255,f[e+3]=t>>24&255;s%r==0&&F(n)}return o&&(e=s<<2,t=n[a],f[e]=255&t,o>1&&(f[e+1]=t>>8&255),o>2&&(f[e+2]=t>>16&255)),f},L.prototype=new j,L.prototype.finalize=function(){return this.encode(this.outputBits,!0),j.prototype.finalize.call(this)};var F=function(e){var t,r,n,i,o,a,s,f,u,c,h,d,l,p,b,m,y,g,w,_,k,A,S,E,M,x,I,P,N,O,R,U,C,B,T,j,L,F,D,z,q,H,K,V,G,W,$,Y,Z,J,X,Q,ee,te,re,ne,ie,oe,ae,se,fe,ue,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],f=e[4]^e[14]^e[24]^e[34]^e[44],u=e[5]^e[15]^e[25]^e[35]^e[45],c=e[6]^e[16]^e[26]^e[36]^e[46],h=e[7]^e[17]^e[27]^e[37]^e[47],t=(d=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(l=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(f<<1|u>>>31),r=o^(u<<1|f>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(c<<1|h>>>31),r=s^(h<<1|c>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=f^(d<<1|l>>>31),r=u^(l<<1|d>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=c^(i<<1|o>>>31),r=h^(o<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,p=e[0],b=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,fe=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,T=e[3]<<1|e[2]>>>31,m=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,g=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,U=e[45]<<29|e[44]>>>3,C=e[44]<<29|e[45]>>>3,E=e[6]<<28|e[7]>>>4,M=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,F=e[26]<<25|e[27]>>>7,D=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,k=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,x=e[18]<<20|e[19]>>>12,I=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=p^~m&g,e[1]=b^~y&w,e[10]=E^~x&P,e[11]=M^~I&N,e[20]=B^~j&F,e[21]=T^~L&D,e[30]=V^~W&Y,e[31]=G^~$&Z,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=m^~g&_,e[3]=y^~w&k,e[12]=x^~P&O,e[13]=I^~N&R,e[22]=j^~F&z,e[23]=L^~D&q,e[32]=W^~Y&J,e[33]=$^~Z&X,e[42]=ne^~oe&se,e[43]=ie^~ae&fe,e[4]=g^~_&A,e[5]=w^~k&S,e[14]=P^~O&U,e[15]=N^~R&C,e[24]=F^~z&H,e[25]=D^~q&K,e[34]=Y^~J&Q,e[35]=Z^~X&ee,e[44]=oe^~se&ue,e[45]=ae^~fe&ce,e[6]=_^~A&p,e[7]=k^~S&b,e[16]=O^~U&E,e[17]=R^~C&M,e[26]=z^~H&B,e[27]=q^~K&T,e[36]=J^~Q&V,e[37]=X^~ee&G,e[46]=se^~ue&te,e[47]=fe^~ce&re,e[8]=A^~p&m,e[9]=S^~b&y,e[18]=U^~E&x,e[19]=C^~M&I,e[28]=H^~B&j,e[29]=K^~T&L,e[38]=Q^~V&W,e[39]=ee^~G&$,e[48]=ue^~te&ne,e[49]=ce^~re&ie,e[0]^=v[n],e[1]^=v[n+1]};if(h)i.exports=P;else{for(O=0;O32||n256)throw new Error("Invalid uint"+n+" size");if((i=s(t)).bitLength()>n)throw new Error("Supplied uint exceeds width: "+n+" vs "+i.bitLength());if(i.lt(new o(0)))throw new Error("Supplied uint "+i.toString()+" is negative");return n?a.leftPad(i.toString("hex"),n/8*2):i}if(e.startsWith("int")){if(n%8||n<8||n>256)throw new Error("Invalid int"+n+" size");if((i=s(t)).bitLength()>n)throw new Error("Supplied int exceeds width: "+n+" vs "+i.bitLength());return i.lt(new o(0))?i.toTwos(n).toString("hex"):n?a.leftPad(i.toString("hex"),n/8*2):i}throw new Error("Unsupported or invalid type: "+e)},u=function(e){if(i.isArray(e))throw new Error("Autodetection of array types is not supported.");var t,r,n="";if(i.isObject(e)&&(e.hasOwnProperty("v")||e.hasOwnProperty("t")||e.hasOwnProperty("value")||e.hasOwnProperty("type"))?(t=e.hasOwnProperty("t")?e.t:e.type,n=e.hasOwnProperty("v")?e.v:e.value):(t=a.toHex(e,!0),n=a.toHex(e),t.startsWith("int")||t.startsWith("uint")||(t="bytes")),!t.startsWith("int")&&!t.startsWith("uint")||"string"!=typeof n||/^(-)?0x/i.test(n)||(n=new o(n)),i.isArray(n)){if((r=function(e){var t=/^\D+\d*\[(\d+)\]$/.exec(e);return t?parseInt(t[1],10):null}(t))&&n.length!==r)throw new Error(t+" is not matching the given array "+JSON.stringify(n));r=n.length}return i.isArray(n)?n.map((function(e){return f(t,e,r).toString("hex").replace("0x","")})).join(""):f(t,n,r).toString("hex").replace("0x","")};e.exports={soliditySha3:function(){var e=Array.prototype.slice.call(arguments),t=i.map(e,u);return a.sha3("0x"+t.join(""))},soliditySha3Raw:function(){return a.sha3Raw("0x"+i.map(Array.prototype.slice.call(arguments),u).join(""))},encodePacked:function(){var e=Array.prototype.slice.call(arguments),t=i.map(e,u);return"0x"+t.join("").toLowerCase()}}},function(e,t,r){"use strict";var n=r(113),i=r(10).errors,o=function(e){this.requestManager=e,this.requests=[]};o.prototype.add=function(e){this.requests.push(e)},o.prototype.execute=function(){var e=this.requests;this.requestManager.sendBatch(e,(function(t,r){r=r||[],e.map((function(e,t){return r[t]||{}})).forEach((function(t,r){if(e[r].callback){if(t&&t.error)return e[r].callback(i.ErrorResponse(t));if(!n.isValidResponse(t))return e[r].callback(i.InvalidResponse(t));try{e[r].callback(null,e[r].format?e[r].format(t.result):t.result)}catch(t){e[r].callback(t)}}}))}))},e.exports=o},function(e,t,r){"use strict";var n,i=null;try{n=Function("return this")()}catch(e){n=window}void 0!==n.ethereum?i=n.ethereum:void 0!==n.web3&&n.web3.currentProvider&&(n.web3.currentProvider.sendAsync&&(n.web3.currentProvider.send=n.web3.currentProvider.sendAsync,delete n.web3.currentProvider.sendAsync),!n.web3.currentProvider.on&&n.web3.currentProvider.connection&&"ipcProviderWrapper"===n.web3.currentProvider.connection.constructor.name&&(n.web3.currentProvider.on=function(e,t){if("function"!=typeof t)throw new Error("The second parameter callback must be a function.");switch(e){case"data":this.connection.on("data",(function(e){var r="";e=e.toString();try{r=JSON.parse(e)}catch(r){return t(new Error("Couldn't parse response data"+e))}r.id||-1===r.method.indexOf("_subscription")||t(null,r)}));break;default:this.connection.on(e,t)}}),i=n.web3.currentProvider),e.exports=i},function(e,t,r){"use strict";var n=r(78),i=r(235),o=r(10).errors,a=r(240).w3cwebsocket,s=function(e,t){n.call(this),t=t||{},this.url=e,this._customTimeout=t.timeout||15e3,this.headers=t.headers||{},this.protocol=t.protocol||void 0,this.reconnectOptions=Object.assign({auto:!1,delay:5e3,maxAttempts:!1,onTimeout:!1},t.reconnect),this.clientConfig=t.clientConfig||void 0,this.requestOptions=t.requestOptions||void 0,this.DATA="data",this.CLOSE="close",this.ERROR="error",this.CONNECT="connect",this.RECONNECT="reconnect",this.connection=null,this.requestQueue=new Map,this.responseQueue=new Map,this.reconnectAttempts=0,this.reconnecting=!1;var r=i.parseURL(e);r.username&&r.password&&(this.headers.authorization="Basic "+i.btoa(r.username+":"+r.password)),r.auth&&(this.headers.authorization="Basic "+i.btoa(r.auth)),Object.defineProperty(this,"connected",{get:function(){return this.connection&&this.connection.readyState===this.connection.OPEN},enumerable:!0}),this.connect()};(s.prototype=Object.create(n.prototype)).constructor=s,s.prototype.connect=function(){this.connection=new a(this.url,this.protocol,void 0,this.headers,this.requestOptions,this.clientConfig),this._addSocketListeners()},s.prototype._onMessage=function(e){var t=this;this._parseResponse("string"==typeof e.data?e.data:"").forEach((function(e){if(e.method&&-1!==e.method.indexOf("_subscription"))t.emit(t.DATA,e);else{var r=e.id;Array.isArray(e)&&(r=e[0].id),t.responseQueue.has(r)&&(void 0!==t.responseQueue.get(r).callback&&t.responseQueue.get(r).callback(!1,e),t.responseQueue.delete(r))}}))},s.prototype._onConnect=function(){if(this.emit(this.CONNECT),this.reconnectAttempts=0,this.reconnecting=!1,this.requestQueue.size>0){var e=this;this.requestQueue.forEach((function(t,r){e.send(t.payload,t.callback),e.requestQueue.delete(r)}))}},s.prototype._onClose=function(e){var t=this;!this.reconnectOptions.auto||[1e3,1001].includes(e.code)&&!1!==e.wasClean?(this.emit(this.CLOSE,e),this.requestQueue.size>0&&this.requestQueue.forEach((function(r,n){r.callback(o.ConnectionNotOpenError(e)),t.requestQueue.delete(n)})),this.responseQueue.size>0&&this.responseQueue.forEach((function(r,n){r.callback(o.InvalidConnection("on WS",e)),t.responseQueue.delete(n)})),this._removeSocketListeners(),this.removeAllListeners()):this.reconnect()},s.prototype._addSocketListeners=function(){this.connection.addEventListener("message",this._onMessage.bind(this)),this.connection.addEventListener("open",this._onConnect.bind(this)),this.connection.addEventListener("close",this._onClose.bind(this))},s.prototype._removeSocketListeners=function(){this.connection.removeEventListener("message",this._onMessage),this.connection.removeEventListener("open",this._onConnect),this.connection.removeEventListener("close",this._onClose)},s.prototype._parseResponse=function(e){var t=this,r=[];return e.replace(/\}[\n\r]?\{/g,"}|--|{").replace(/\}\][\n\r]?\[\{/g,"}]|--|[{").replace(/\}[\n\r]?\[\{/g,"}|--|[{").replace(/\}\][\n\r]?\{/g,"}]|--|{").split("|--|").forEach((function(e){t.lastChunk&&(e=t.lastChunk+e);var n=null;try{n=JSON.parse(e)}catch(r){return t.lastChunk=e,clearTimeout(t.lastChunkTimeout),void(t.lastChunkTimeout=setTimeout((function(){t.reconnectOptions.auto&&t.reconnectOptions.onTimeout?t.reconnect():(t.emit(t.ERROR,o.ConnectionTimeout(t._customTimeout)),t.requestQueue.size>0&&t.requestQueue.forEach((function(e,r){e.callback(o.ConnectionTimeout(t._customTimeout)),t.requestQueue.delete(r)})))}),t._customTimeout))}clearTimeout(t.lastChunkTimeout),t.lastChunk=null,n&&r.push(n)})),r},s.prototype.send=function(e,t){var r=e.id,n={payload:e,callback:t};if(Array.isArray(e)&&(r=e[0].id),this.connection.readyState===this.connection.CONNECTING||this.reconnecting)this.requestQueue.set(r,n);else{if(this.connection.readyState!==this.connection.OPEN)return this.requestQueue.delete(r),this.emit(this.ERROR,o.ConnectionNotOpenError()),void n.callback(o.ConnectionNotOpenError());this.responseQueue.set(r,n),this.requestQueue.delete(r);try{this.connection.send(JSON.stringify(n.payload))}catch(e){n.callback(e),this.responseQueue.delete(r)}}},s.prototype.reset=function(){this.responseQueue.clear(),this.requestQueue.clear(),this.removeAllListeners(),this._removeSocketListeners(),this._addSocketListeners()},s.prototype.disconnect=function(e,t){this._removeSocketListeners(),this.connection.close(e||1e3,t)},s.prototype.supportsSubscriptions=function(){return!0},s.prototype.reconnect=function(){var e=this;this.reconnecting=!0,this.responseQueue.size>0&&this.responseQueue.forEach((function(t,r){t.callback(o.PendingRequestsOnReconnectingError()),e.responseQueue.delete(r)})),!this.reconnectOptions.maxAttempts||this.reconnectAttempts0&&this.requestQueue.forEach((function(t,r){t.callback(o.MaxAttemptsReachedOnReconnectingError()),e.requestQueue.delete(r)})))},e.exports=s},function(e,t,r){"use strict";(function(t,n){var i="[object process]"===Object.prototype.toString.call(void 0!==t?t:0),o="undefined"!=typeof navigator&&"ReactNative"===navigator.product,a=null,s=null;if(i||o){a=function(e){return n.from(e).toString("base64")};var f=r(41);if(f.URL){var u=f.URL;s=function(e){return new u(e)}}else s=r(41).parse}else a=btoa.bind(window),s=function(e){return new URL(e)};e.exports={parseURL:s,btoa:a}}).call(this,r(9),r(2).Buffer)},function(e,t,r){"use strict";var n=r(0)(r(1));e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"===(0,n.default)(e)&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,r){"use strict";t.decode=t.parse=r(238),t.encode=t.stringify=r(239)},function(e,t,r){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,r,o){t=t||"&",r=r||"=";var a={};if("string"!=typeof e||0===e.length)return a;var s=/\+/g;e=e.split(t);var f=1e3;o&&"number"==typeof o.maxKeys&&(f=o.maxKeys);var u=e.length;f>0&&u>f&&(u=f);for(var c=0;c=0?(h=b.substr(0,m),d=b.substr(m+1)):(h=b,d=""),l=decodeURIComponent(h),p=decodeURIComponent(d),n(a,l)?i(a[l])?a[l].push(p):a[l]=[a[l],p]:a[l]=p}return a};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=function(e){switch((0,n.default)(e)){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,r,f){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"===(0,n.default)(e)?a(s(e),(function(n){var s=encodeURIComponent(i(n))+r;return o(e[n])?a(e[n],(function(e){return s+encodeURIComponent(i(e))})).join(t):s+encodeURIComponent(i(e[n]))})).join(t):f?encodeURIComponent(i(f))+r+encodeURIComponent(i(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function a(e,t){if(e.map)return e.map(t);for(var r=[],n=0;n=4.0.0"},"homepage":"https://github.com/theturtle32/WebSocket-Node","keywords":["websocket","websockets","socket","networking","comet","push","RFC-6455","realtime","server","client"],"license":"Apache-2.0","main":"index","name":"websocket","repository":{"type":"git","url":"git+https://github.com/theturtle32/WebSocket-Node.git"},"scripts":{"gulp":"gulp","test":"tape test/unit/*.js"},"version":"1.0.32"}')},function(e,t,r){"use strict";var n=r(10).errors,i=r(245).XMLHttpRequest,o=r(79),a=r(123),s=function(e,t){t=t||{},this.withCredentials=t.withCredentials||!1,this.timeout=t.timeout||0,this.headers=t.headers,this.agent=t.agent,this.connected=!1;var r=!1!==t.keepAlive;this.host=e||"http://localhost:8545",this.agent||("https"===this.host.substring(0,5)?this.httpsAgent=new a.Agent({keepAlive:r}):this.httpAgent=new o.Agent({keepAlive:r}))};s.prototype._prepareRequest=function(){var e;if("undefined"!=typeof XMLHttpRequest)e=new XMLHttpRequest;else{e=new i;var t={httpsAgent:this.httpsAgent,httpAgent:this.httpAgent,baseUrl:this.baseUrl};this.agent&&(t.httpsAgent=this.agent.https,t.httpAgent=this.agent.http,t.baseUrl=this.agent.baseUrl),e.nodejsSet(t)}return e.open("POST",this.host,!0),e.setRequestHeader("Content-Type","application/json"),e.timeout=this.timeout,e.withCredentials=this.withCredentials,this.headers&&this.headers.forEach((function(t){e.setRequestHeader(t.name,t.value)})),e},s.prototype.send=function(e,t){var r=this,i=this._prepareRequest();i.onreadystatechange=function(){if(4===i.readyState&&1!==i.timeout){var e=i.responseText,o=null;try{e=JSON.parse(e)}catch(e){o=n.InvalidResponse(i.responseText)}r.connected=!0,t(o,e)}},i.ontimeout=function(){r.connected=!1,t(n.ConnectionTimeout(this.timeout))};try{i.send(JSON.stringify(e))}catch(e){this.connected=!1,t(n.InvalidConnection(this.host))}},s.prototype.disconnect=function(){},s.prototype.supportsSubscriptions=function(){return!1},e.exports=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){for(var r in e)t.hasOwnProperty(r)||(t[r]=e[r])}(r(246));var n=r(82);t.XMLHttpRequestEventTarget=n.XMLHttpRequestEventTarget},function(e,t,r){"use strict";(function(e,n){var i,o=(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0)return this._url=this._parseUrl(t.headers.location),this._method="GET",this._loweredHeaders["content-type"]&&(delete this._headers[this._loweredHeaders["content-type"]],delete this._loweredHeaders["content-type"]),null!=this._headers["Content-Type"]&&delete this._headers["Content-Type"],delete this._headers["Content-Length"],this.upload._reset(),this._finalizeHeaders(),void this._sendHxxpRequest();this._response=t,this._response.on("data",(function(e){return n._onHttpResponseData(t,e)})),this._response.on("end",(function(){return n._onHttpResponseEnd(t)})),this._response.on("close",(function(){return n._onHttpResponseClose(t)})),this.responseUrl=this._url.href.split("#")[0],this.status=t.statusCode,this.statusText=s.STATUS_CODES[this.status],this._parseResponseHeaders(t);var i=this._responseHeaders["content-length"]||"";this._totalBytes=+i,this._lengthComputable=!!i,this._setReadyState(r.HEADERS_RECEIVED)}},r.prototype._onHttpResponseData=function(e,t){this._response===e&&(this._responseParts.push(new n(t)),this._loadedBytes+=t.length,this.readyState!==r.LOADING&&this._setReadyState(r.LOADING),this._dispatchProgress("progress"))},r.prototype._onHttpResponseEnd=function(e){this._response===e&&(this._parseResponse(),this._request=null,this._response=null,this._setReadyState(r.DONE),this._dispatchProgress("load"),this._dispatchProgress("loadend"))},r.prototype._onHttpResponseClose=function(e){if(this._response===e){var t=this._request;this._setError(),t.abort(),this._setReadyState(r.DONE),this._dispatchProgress("error"),this._dispatchProgress("loadend")}},r.prototype._onHttpTimeout=function(e){this._request===e&&(this._setError(),e.abort(),this._setReadyState(r.DONE),this._dispatchProgress("timeout"),this._dispatchProgress("loadend"))},r.prototype._onHttpRequestError=function(e,t){this._request===e&&(this._setError(),e.abort(),this._setReadyState(r.DONE),this._dispatchProgress("error"),this._dispatchProgress("loadend"))},r.prototype._dispatchProgress=function(e){var t=new r.ProgressEvent(e);t.lengthComputable=this._lengthComputable,t.loaded=this._loadedBytes,t.total=this._totalBytes,this.dispatchEvent(t)},r.prototype._setError=function(){this._request=null,this._response=null,this._responseHeaders=null,this._responseParts=null},r.prototype._parseUrl=function(e,t,r){var n=null==this.nodejsBaseUrl?e:c.resolve(this.nodejsBaseUrl,e),i=c.parse(n,!1,!0);i.hash=null;var o=(i.auth||"").split(":"),a=o[0],s=o[1];return(a||s||t||r)&&(i.auth=(t||a||"")+":"+(r||s||"")),i},r.prototype._parseResponseHeaders=function(e){for(var t in this._responseHeaders={},e.headers){var r=t.toLowerCase();this._privateHeaders[r]||(this._responseHeaders[r]=e.headers[t])}null!=this._mimeOverride&&(this._responseHeaders["content-type"]=this._mimeOverride)},r.prototype._parseResponse=function(){var e=n.concat(this._responseParts);switch(this._responseParts=null,this.responseType){case"json":this.responseText=null;try{this.response=JSON.parse(e.toString("utf-8"))}catch(e){this.response=null}return;case"buffer":return this.responseText=null,void(this.response=e);case"arraybuffer":this.responseText=null;for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),i=0;i0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var t,r,i,o=n.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,r=o,i=s,t.copy(r,i),s+=a.data.length,a=a.next;return o},e}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,r){"use strict";(function(e,t){!function(e,r){if(!e.setImmediate){var n,i,o,a,s,f=1,u={},c=!1,h=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?n=function(e){t.nextTick((function(){p(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,r=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=r,t}}()?e.MessageChannel?((o=new MessageChannel).port1.onmessage=function(e){p(e.data)},n=function(e){o.port2.postMessage(e)}):h&&"onreadystatechange"in h.createElement("script")?(i=h.documentElement,n=function(e){var t=h.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):n=function(e){setTimeout(p,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&p(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),n=function(t){e.postMessage(a+t,"*")}),d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function L(t,e,r){j.call(this,t,e,r)}j.prototype.update=function(t){if(this.finalized)throw new Error("finalize already called");var e,r=(0,a.default)(t);if("string"!==r){if("object"!==r)throw new Error(s);if(null===t)throw new Error(s);if(l&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||l&&ArrayBuffer.isView(t)))throw new Error(s);e=!0}for(var n,i,o=this.blocks,u=this.byteCount,f=t.length,c=this.blockCount,h=0,d=this.s;h>2]|=t[h]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|63&i)<=57344?(o[n>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=u){for(this.start=n-u,this.block=o[c],n=0;n>=8);r>0;)i.unshift(r),r=255&(t>>=8),++n;return e?i.push(n):i.unshift(n),this.update(i),i.length},j.prototype.encodeString=function(t){var e,r=(0,a.default)(t);if("string"!==r){if("object"!==r)throw new Error(s);if(null===t)throw new Error(s);if(l&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||l&&ArrayBuffer.isView(t)))throw new Error(s);e=!0}var n=0,i=t.length;if(e)n=i;else for(var o=0;o=57344?n+=3:(u=65536+((1023&u)<<10|1023&t.charCodeAt(++o)),n+=4)}return n+=this.encode(8*n),this.update(t),n},j.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e>4&15]+p[15&t]+p[t>>12&15]+p[t>>8&15]+p[t>>20&15]+p[t>>16&15]+p[t>>28&15]+p[t>>24&15];a%e==0&&(F(r),o=0)}return i&&(t=r[o],s+=p[t>>4&15]+p[15&t],i>1&&(s+=p[t>>12&15]+p[t>>8&15]),i>2&&(s+=p[t>>20&15]+p[t>>16&15])),s},j.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(t);a>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;s%r==0&&F(n)}return o&&(t=s<<2,e=n[a],u[t]=255&e,o>1&&(u[t+1]=e>>8&255),o>2&&(u[t+2]=e>>16&255)),u},L.prototype=new j,L.prototype.finalize=function(){return this.encode(this.outputBits,!0),j.prototype.finalize.call(this)};var F=function(t){var e,r,n,i,o,a,s,u,f,c,h,d,l,p,b,m,v,g,w,_,k,A,S,M,E,x,I,O,P,C,B,T,R,U,N,j,L,F,D,q,z,H,K,V,G,W,Y,$,J,Z,X,Q,tt,et,rt,nt,it,ot,at,st,ut,ft,ct;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],a=t[2]^t[12]^t[22]^t[32]^t[42],s=t[3]^t[13]^t[23]^t[33]^t[43],u=t[4]^t[14]^t[24]^t[34]^t[44],f=t[5]^t[15]^t[25]^t[35]^t[45],c=t[6]^t[16]^t[26]^t[36]^t[46],h=t[7]^t[17]^t[27]^t[37]^t[47],e=(d=t[8]^t[18]^t[28]^t[38]^t[48])^(a<<1|s>>>31),r=(l=t[9]^t[19]^t[29]^t[39]^t[49])^(s<<1|a>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(u<<1|f>>>31),r=o^(f<<1|u>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=a^(c<<1|h>>>31),r=s^(h<<1|c>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=u^(d<<1|l>>>31),r=f^(l<<1|d>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=c^(i<<1|o>>>31),r=h^(o<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,p=t[0],b=t[1],W=t[11]<<4|t[10]>>>28,Y=t[10]<<4|t[11]>>>28,O=t[20]<<3|t[21]>>>29,P=t[21]<<3|t[20]>>>29,st=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,U=t[2]<<1|t[3]>>>31,N=t[3]<<1|t[2]>>>31,m=t[13]<<12|t[12]>>>20,v=t[12]<<12|t[13]>>>20,$=t[22]<<10|t[23]>>>22,J=t[23]<<10|t[22]>>>22,C=t[33]<<13|t[32]>>>19,B=t[32]<<13|t[33]>>>19,ft=t[42]<<2|t[43]>>>30,ct=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,j=t[14]<<6|t[15]>>>26,L=t[15]<<6|t[14]>>>26,g=t[25]<<11|t[24]>>>21,w=t[24]<<11|t[25]>>>21,Z=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,T=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,M=t[6]<<28|t[7]>>>4,E=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,F=t[26]<<25|t[27]>>>7,D=t[27]<<25|t[26]>>>7,_=t[36]<<21|t[37]>>>11,k=t[37]<<21|t[36]>>>11,Q=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,V=t[8]<<27|t[9]>>>5,G=t[9]<<27|t[8]>>>5,x=t[18]<<20|t[19]>>>12,I=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,at=t[28]<<7|t[29]>>>25,q=t[38]<<8|t[39]>>>24,z=t[39]<<8|t[38]>>>24,A=t[48]<<14|t[49]>>>18,S=t[49]<<14|t[48]>>>18,t[0]=p^~m&g,t[1]=b^~v&w,t[10]=M^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&$,t[31]=G^~Y&J,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=m^~g&_,t[3]=v^~w&k,t[12]=x^~O&C,t[13]=I^~P&B,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~$&Z,t[33]=Y^~J&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&S,t[14]=O^~C&T,t[15]=P^~B&R,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=$^~Z&Q,t[35]=J^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&p,t[7]=k^~S&b,t[16]=C^~T&M,t[17]=B^~R&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=Z^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~p&m,t[9]=S^~b&v,t[18]=T^~M&x,t[19]=R^~E&I,t[28]=H^~U&j,t[29]=K^~N&L,t[38]=Q^~V&W,t[39]=tt^~G&Y,t[48]=ft^~et&nt,t[49]=ct^~rt&it,t[0]^=y[n],t[1]^=y[n+1]};if(h)i.exports=O;else{for(C=0;C32||n256)throw new Error("Invalid uint"+n+" size");if((i=s(e)).bitLength()>n)throw new Error("Supplied uint exceeds width: "+n+" vs "+i.bitLength());if(i.lt(new o(0)))throw new Error("Supplied uint "+i.toString()+" is negative");return n?a.leftPad(i.toString("hex"),n/8*2):i}if(t.startsWith("int")){if(n%8||n<8||n>256)throw new Error("Invalid int"+n+" size");if((i=s(e)).bitLength()>n)throw new Error("Supplied int exceeds width: "+n+" vs "+i.bitLength());return i.lt(new o(0))?i.toTwos(n).toString("hex"):n?a.leftPad(i.toString("hex"),n/8*2):i}throw new Error("Unsupported or invalid type: "+t)},f=function(t){if(i.isArray(t))throw new Error("Autodetection of array types is not supported.");var e,r,n="";if(i.isObject(t)&&(t.hasOwnProperty("v")||t.hasOwnProperty("t")||t.hasOwnProperty("value")||t.hasOwnProperty("type"))?(e=t.hasOwnProperty("t")?t.t:t.type,n=t.hasOwnProperty("v")?t.v:t.value):(e=a.toHex(t,!0),n=a.toHex(t),e.startsWith("int")||e.startsWith("uint")||(e="bytes")),!e.startsWith("int")&&!e.startsWith("uint")||"string"!=typeof n||/^(-)?0x/i.test(n)||(n=new o(n)),i.isArray(n)){if((r=function(t){var e=/^\D+\d*\[(\d+)\]$/.exec(t);return e?parseInt(e[1],10):null}(e))&&n.length!==r)throw new Error(e+" is not matching the given array "+JSON.stringify(n));r=n.length}return i.isArray(n)?n.map((function(t){return u(e,t,r).toString("hex").replace("0x","")})).join(""):u(e,n,r).toString("hex").replace("0x","")};t.exports={soliditySha3:function(){var t=Array.prototype.slice.call(arguments),e=i.map(t,f);return a.sha3("0x"+e.join(""))},soliditySha3Raw:function(){return a.sha3Raw("0x"+i.map(Array.prototype.slice.call(arguments),f).join(""))},encodePacked:function(){var t=Array.prototype.slice.call(arguments),e=i.map(t,f);return"0x"+e.join("").toLowerCase()}}},function(t,e,r){"use strict";var n=r(108),i=r(9).errors,o=function(t){this.requestManager=t,this.requests=[]};o.prototype.add=function(t){this.requests.push(t)},o.prototype.execute=function(){var t=this.requests;this.requestManager.sendBatch(t,(function(e,r){r=r||[],t.map((function(t,e){return r[e]||{}})).forEach((function(e,r){if(t[r].callback){if(e&&e.error)return t[r].callback(i.ErrorResponse(e));if(!n.isValidResponse(e))return t[r].callback(i.InvalidResponse(e));try{t[r].callback(null,t[r].format?t[r].format(e.result):e.result)}catch(e){t[r].callback(e)}}}))}))},t.exports=o},function(t,e,r){"use strict";var n,i=null;try{n=Function("return this")()}catch(t){n=window}void 0!==n.ethereum?i=n.ethereum:void 0!==n.web3&&n.web3.currentProvider&&(n.web3.currentProvider.sendAsync&&(n.web3.currentProvider.send=n.web3.currentProvider.sendAsync,delete n.web3.currentProvider.sendAsync),!n.web3.currentProvider.on&&n.web3.currentProvider.connection&&"ipcProviderWrapper"===n.web3.currentProvider.connection.constructor.name&&(n.web3.currentProvider.on=function(t,e){if("function"!=typeof e)throw new Error("The second parameter callback must be a function.");switch(t){case"data":this.connection.on("data",(function(t){var r="";t=t.toString();try{r=JSON.parse(t)}catch(r){return e(new Error("Couldn't parse response data"+t))}r.id||-1===r.method.indexOf("_subscription")||e(null,r)}));break;default:this.connection.on(t,e)}}),i=n.web3.currentProvider),t.exports=i},function(t,e,r){"use strict";var n=r(72),i=r(219),o=r(9).errors,a=r(224).w3cwebsocket,s=function(t,e){n.call(this),e=e||{},this.url=t,this._customTimeout=e.timeout||15e3,this.headers=e.headers||{},this.protocol=e.protocol||void 0,this.reconnectOptions=Object.assign({auto:!1,delay:5e3,maxAttempts:!1,onTimeout:!1},e.reconnect),this.clientConfig=e.clientConfig||void 0,this.requestOptions=e.requestOptions||void 0,this.DATA="data",this.CLOSE="close",this.ERROR="error",this.CONNECT="connect",this.RECONNECT="reconnect",this.connection=null,this.requestQueue=new Map,this.responseQueue=new Map,this.reconnectAttempts=0,this.reconnecting=!1;var r=i.parseURL(t);r.username&&r.password&&(this.headers.authorization="Basic "+i.btoa(r.username+":"+r.password)),r.auth&&(this.headers.authorization="Basic "+i.btoa(r.auth)),Object.defineProperty(this,"connected",{get:function(){return this.connection&&this.connection.readyState===this.connection.OPEN},enumerable:!0}),this.connect()};(s.prototype=Object.create(n.prototype)).constructor=s,s.prototype.connect=function(){this.connection=new a(this.url,this.protocol,void 0,this.headers,this.requestOptions,this.clientConfig),this._addSocketListeners()},s.prototype._onMessage=function(t){var e=this;this._parseResponse("string"==typeof t.data?t.data:"").forEach((function(t){if(t.method&&-1!==t.method.indexOf("_subscription"))e.emit(e.DATA,t);else{var r=t.id;Array.isArray(t)&&(r=t[0].id),e.responseQueue.has(r)&&(void 0!==e.responseQueue.get(r).callback&&e.responseQueue.get(r).callback(!1,t),e.responseQueue.delete(r))}}))},s.prototype._onConnect=function(){if(this.emit(this.CONNECT),this.reconnectAttempts=0,this.reconnecting=!1,this.requestQueue.size>0){var t=this;this.requestQueue.forEach((function(e,r){t.send(e.payload,e.callback),t.requestQueue.delete(r)}))}},s.prototype._onClose=function(t){var e=this;!this.reconnectOptions.auto||[1e3,1001].includes(t.code)&&!1!==t.wasClean?(this.emit(this.CLOSE,t),this.requestQueue.size>0&&this.requestQueue.forEach((function(r,n){r.callback(o.ConnectionNotOpenError(t)),e.requestQueue.delete(n)})),this.responseQueue.size>0&&this.responseQueue.forEach((function(r,n){r.callback(o.InvalidConnection("on WS",t)),e.responseQueue.delete(n)})),this._removeSocketListeners(),this.removeAllListeners()):this.reconnect()},s.prototype._addSocketListeners=function(){this.connection.addEventListener("message",this._onMessage.bind(this)),this.connection.addEventListener("open",this._onConnect.bind(this)),this.connection.addEventListener("close",this._onClose.bind(this))},s.prototype._removeSocketListeners=function(){this.connection.removeEventListener("message",this._onMessage),this.connection.removeEventListener("open",this._onConnect),this.connection.removeEventListener("close",this._onClose)},s.prototype._parseResponse=function(t){var e=this,r=[];return t.replace(/\}[\n\r]?\{/g,"}|--|{").replace(/\}\][\n\r]?\[\{/g,"}]|--|[{").replace(/\}[\n\r]?\[\{/g,"}|--|[{").replace(/\}\][\n\r]?\{/g,"}]|--|{").split("|--|").forEach((function(t){e.lastChunk&&(t=e.lastChunk+t);var n=null;try{n=JSON.parse(t)}catch(r){return e.lastChunk=t,clearTimeout(e.lastChunkTimeout),void(e.lastChunkTimeout=setTimeout((function(){e.reconnectOptions.auto&&e.reconnectOptions.onTimeout?e.reconnect():(e.emit(e.ERROR,o.ConnectionTimeout(e._customTimeout)),e.requestQueue.size>0&&e.requestQueue.forEach((function(t,r){t.callback(o.ConnectionTimeout(e._customTimeout)),e.requestQueue.delete(r)})))}),e._customTimeout))}clearTimeout(e.lastChunkTimeout),e.lastChunk=null,n&&r.push(n)})),r},s.prototype.send=function(t,e){var r=t.id,n={payload:t,callback:e};if(Array.isArray(t)&&(r=t[0].id),this.connection.readyState===this.connection.CONNECTING||this.reconnecting)this.requestQueue.set(r,n);else{if(this.connection.readyState!==this.connection.OPEN)return this.requestQueue.delete(r),this.emit(this.ERROR,o.ConnectionNotOpenError()),void n.callback(o.ConnectionNotOpenError());this.responseQueue.set(r,n),this.requestQueue.delete(r);try{this.connection.send(JSON.stringify(n.payload))}catch(t){n.callback(t),this.responseQueue.delete(r)}}},s.prototype.reset=function(){this.responseQueue.clear(),this.requestQueue.clear(),this.removeAllListeners(),this._removeSocketListeners(),this._addSocketListeners()},s.prototype.disconnect=function(t,e){this._removeSocketListeners(),this.connection.close(t||1e3,e)},s.prototype.supportsSubscriptions=function(){return!0},s.prototype.reconnect=function(){var t=this;this.reconnecting=!0,this.responseQueue.size>0&&this.responseQueue.forEach((function(e,r){e.callback(o.PendingRequestsOnReconnectingError()),t.responseQueue.delete(r)})),!this.reconnectOptions.maxAttempts||this.reconnectAttempts0&&this.requestQueue.forEach((function(e,r){e.callback(o.MaxAttemptsReachedOnReconnectingError()),t.requestQueue.delete(r)})))},t.exports=s},function(t,e,r){"use strict";(function(e,n){var i="[object process]"===Object.prototype.toString.call(void 0!==e?e:0),o="undefined"!=typeof navigator&&"ReactNative"===navigator.product,a=null,s=null;if(i||o){a=function(t){return n.from(t).toString("base64")};var u=r(39);if(u.URL){var f=u.URL;s=function(t){return new f(t)}}else s=r(39).parse}else a=btoa.bind(window),s=function(t){return new URL(t)};t.exports={parseURL:s,btoa:a}}).call(this,r(12),r(2).Buffer)},function(t,e,r){"use strict";var n=r(0)(r(1));t.exports={isString:function(t){return"string"==typeof t},isObject:function(t){return"object"===(0,n.default)(t)&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}}},function(t,e,r){"use strict";e.decode=e.parse=r(222),e.encode=e.stringify=r(223)},function(t,e,r){"use strict";function n(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t,e,r,o){e=e||"&",r=r||"=";var a={};if("string"!=typeof t||0===t.length)return a;var s=/\+/g;t=t.split(e);var u=1e3;o&&"number"==typeof o.maxKeys&&(u=o.maxKeys);var f=t.length;u>0&&f>u&&(f=u);for(var c=0;c=0?(h=b.substr(0,m),d=b.substr(m+1)):(h=b,d=""),l=decodeURIComponent(h),p=decodeURIComponent(d),n(a,l)?i(a[l])?a[l].push(p):a[l]=[a[l],p]:a[l]=p}return a};var i=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}},function(t,e,r){"use strict";var n=r(0)(r(1)),i=function(t){switch((0,n.default)(t)){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,r,u){return e=e||"&",r=r||"=",null===t&&(t=void 0),"object"===(0,n.default)(t)?a(s(t),(function(n){var s=encodeURIComponent(i(n))+r;return o(t[n])?a(t[n],(function(t){return s+encodeURIComponent(i(t))})).join(e):s+encodeURIComponent(i(t[n]))})).join(e):u?encodeURIComponent(i(u))+r+encodeURIComponent(i(t)):""};var o=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function a(t,e){if(t.map)return t.map(e);for(var r=[],n=0;n=4.0.0"},"homepage":"https://github.com/theturtle32/WebSocket-Node","keywords":["websocket","websockets","socket","networking","comet","push","RFC-6455","realtime","server","client"],"license":"Apache-2.0","main":"index","name":"websocket","repository":{"type":"git","url":"git+https://github.com/theturtle32/WebSocket-Node.git"},"scripts":{"gulp":"gulp","test":"tape test/unit/*.js"},"version":"1.0.33"}')},function(t,e,r){"use strict";var n=r(9).errors,i=r(229).XMLHttpRequest,o=r(73),a=r(118),s=function(t,e){e=e||{},this.withCredentials=e.withCredentials||!1,this.timeout=e.timeout||0,this.headers=e.headers,this.agent=e.agent,this.connected=!1;var r=!1!==e.keepAlive;this.host=t||"http://localhost:8545",this.agent||("https"===this.host.substring(0,5)?this.httpsAgent=new a.Agent({keepAlive:r}):this.httpAgent=new o.Agent({keepAlive:r}))};s.prototype._prepareRequest=function(){var t;if("undefined"!=typeof XMLHttpRequest)t=new XMLHttpRequest;else{t=new i;var e={httpsAgent:this.httpsAgent,httpAgent:this.httpAgent,baseUrl:this.baseUrl};this.agent&&(e.httpsAgent=this.agent.https,e.httpAgent=this.agent.http,e.baseUrl=this.agent.baseUrl),t.nodejsSet(e)}return t.open("POST",this.host,!0),t.setRequestHeader("Content-Type","application/json"),t.timeout=this.timeout,t.withCredentials=this.withCredentials,this.headers&&this.headers.forEach((function(e){t.setRequestHeader(e.name,e.value)})),t},s.prototype.send=function(t,e){var r=this,i=this._prepareRequest();i.onreadystatechange=function(){if(4===i.readyState&&1!==i.timeout){var t=i.responseText,o=null;try{t=JSON.parse(t)}catch(t){o=n.InvalidResponse(i.responseText)}r.connected=!0,e(o,t)}},i.ontimeout=function(){r.connected=!1,e(n.ConnectionTimeout(this.timeout))};try{i.send(JSON.stringify(t))}catch(t){this.connected=!1,e(n.InvalidConnection(this.host))}},s.prototype.disconnect=function(){},s.prototype.supportsSubscriptions=function(){return!1},t.exports=s},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var r in t)e.hasOwnProperty(r)||(e[r]=t[r])}(r(230));var n=r(76);e.XMLHttpRequestEventTarget=n.XMLHttpRequestEventTarget},function(t,e,r){"use strict";(function(t,n){var i,o=(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])},function(t,e){function r(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),a=Object.assign||function(t){for(var e,r=1,n=arguments.length;r=0)return this._url=this._parseUrl(e.headers.location),this._method="GET",this._loweredHeaders["content-type"]&&(delete this._headers[this._loweredHeaders["content-type"]],delete this._loweredHeaders["content-type"]),null!=this._headers["Content-Type"]&&delete this._headers["Content-Type"],delete this._headers["Content-Length"],this.upload._reset(),this._finalizeHeaders(),void this._sendHxxpRequest();this._response=e,this._response.on("data",(function(t){return n._onHttpResponseData(e,t)})),this._response.on("end",(function(){return n._onHttpResponseEnd(e)})),this._response.on("close",(function(){return n._onHttpResponseClose(e)})),this.responseUrl=this._url.href.split("#")[0],this.status=e.statusCode,this.statusText=s.STATUS_CODES[this.status],this._parseResponseHeaders(e);var i=this._responseHeaders["content-length"]||"";this._totalBytes=+i,this._lengthComputable=!!i,this._setReadyState(r.HEADERS_RECEIVED)}},r.prototype._onHttpResponseData=function(t,e){this._response===t&&(this._responseParts.push(new n(e)),this._loadedBytes+=e.length,this.readyState!==r.LOADING&&this._setReadyState(r.LOADING),this._dispatchProgress("progress"))},r.prototype._onHttpResponseEnd=function(t){this._response===t&&(this._parseResponse(),this._request=null,this._response=null,this._setReadyState(r.DONE),this._dispatchProgress("load"),this._dispatchProgress("loadend"))},r.prototype._onHttpResponseClose=function(t){if(this._response===t){var e=this._request;this._setError(),e.abort(),this._setReadyState(r.DONE),this._dispatchProgress("error"),this._dispatchProgress("loadend")}},r.prototype._onHttpTimeout=function(t){this._request===t&&(this._setError(),t.abort(),this._setReadyState(r.DONE),this._dispatchProgress("timeout"),this._dispatchProgress("loadend"))},r.prototype._onHttpRequestError=function(t,e){this._request===t&&(this._setError(),t.abort(),this._setReadyState(r.DONE),this._dispatchProgress("error"),this._dispatchProgress("loadend"))},r.prototype._dispatchProgress=function(t){var e=new r.ProgressEvent(t);e.lengthComputable=this._lengthComputable,e.loaded=this._loadedBytes,e.total=this._totalBytes,this.dispatchEvent(e)},r.prototype._setError=function(){this._request=null,this._response=null,this._responseHeaders=null,this._responseParts=null},r.prototype._parseUrl=function(t,e,r){var n=null==this.nodejsBaseUrl?t:c.resolve(this.nodejsBaseUrl,t),i=c.parse(n,!1,!0);i.hash=null;var o=(i.auth||"").split(":"),a=o[0],s=o[1];return(a||s||e||r)&&(i.auth=(e||a||"")+":"+(r||s||"")),i},r.prototype._parseResponseHeaders=function(t){for(var e in this._responseHeaders={},t.headers){var r=e.toLowerCase();this._privateHeaders[r]||(this._responseHeaders[r]=t.headers[e])}null!=this._mimeOverride&&(this._responseHeaders["content-type"]=this._mimeOverride)},r.prototype._parseResponse=function(){var t=n.concat(this._responseParts);switch(this._responseParts=null,this.responseType){case"json":this.responseText=null;try{this.response=JSON.parse(t.toString("utf-8"))}catch(t){this.response=null}return;case"buffer":return this.responseText=null,void(this.response=t);case"arraybuffer":this.responseText=null;for(var e=new ArrayBuffer(t.length),r=new Uint8Array(e),i=0;i0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;for(var e,r,i,o=n.allocUnsafe(t>>>0),a=this.head,s=0;a;)e=a.data,r=o,i=s,e.copy(r,i),s+=a.data.length,a=a.next;return o},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+" "+t})},function(t,e){},function(t,e,r){"use strict";(function(t,e){!function(t,r){if(!t.setImmediate){var n,i,o,a,s,u=1,f={},c=!1,h=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?n=function(t){e.nextTick((function(){p(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=r,e}}()?t.MessageChannel?((o=new MessageChannel).port1.onmessage=function(t){p(t.data)},n=function(t){o.port2.postMessage(t)}):h&&"onreadystatechange"in h.createElement("script")?(i=h.documentElement,n=function(t){var e=h.createElement("script");e.onreadystatechange=function(){p(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):n=function(t){setTimeout(p,0,t)}:(a="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(a)&&p(+e.data.slice(a.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),n=function(e){t.postMessage(a+e,"*")}),d.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),r=0;r0&&(i=r),r=e[u++]);)switch(z++,"\n"===r?(H++,q=0):q++,T){case d:if("{"===r)T=p;else if("["===r)T=m;else if(!V(r))return K("Non-whitespace before {[.");continue;case g:case p:if(V(r))continue;if(T===g)j.push(w);else{if("}"===r){s({}),f(),T=j.pop()||l;continue}j.push(b)}if('"'!==r)return K('Malformed object key should start with " ');T=y;continue;case w:case b:if(V(r))continue;if(":"===r)T===b?(j.push(b),void 0!==o&&(s({}),a(o),o=void 0),D++):void 0!==o&&(a(o),o=void 0),T=l;else if("}"===r)void 0!==o&&(s(o),f(),o=void 0),f(),D--,T=j.pop()||l;else{if(","!==r)return K("Bad object");T===b&&j.push(b),void 0!==o&&(s(o),f(),o=void 0),T=g}continue;case m:case l:if(V(r))continue;if(T===m){if(s([]),D++,T=l,"]"===r){f(),D--,T=j.pop()||l;continue}j.push(v)}if('"'===r)T=y;else if("{"===r)T=p;else if("["===r)T=m;else if("t"===r)T=_;else if("f"===r)T=S;else if("n"===r)T=I;else if("-"===r)U+=r;else if("0"===r)U+=r,T=20;else{if(-1==="123456789".indexOf(r))return K("Bad value");U+=r,T=20}continue;case v:if(","===r)j.push(v),void 0!==o&&(s(o),f(),o=void 0),T=l;else{if("]"!==r){if(V(r))continue;return K("Bad array")}void 0!==o&&(s(o),f(),o=void 0),f(),D--,T=j.pop()||l}continue;case y:void 0===o&&(o="");var h=u-1;e:for(;;){for(;F>0;)if(L+=r,r=e.charAt(u++),4===F?(o+=String.fromCharCode(parseInt(L,16)),F=0,h=u-1):F++,!r)break e;if('"'===r&&!C){T=j.pop()||l,o+=e.substring(h,u-1);break}if(!("\\"!==r||C||(C=!0,o+=e.substring(h,u-1),r=e.charAt(u++))))break;if(C){if(C=!1,"n"===r?o+="\n":"r"===r?o+="\r":"t"===r?o+="\t":"f"===r?o+="\f":"b"===r?o+="\b":"u"===r?(F=1,L=""):o+=r,r=e.charAt(u++),h=u-1,r)continue;break}c.lastIndex=u;var G=c.exec(e);if(!G){u=e.length+1,o+=e.substring(h,u-1);break}if(u=G.index+1,!(r=e.charAt(G.index))){o+=e.substring(h,u-1);break}}continue;case _:if(!r)continue;if("r"!==r)return K("Invalid true started with t"+r);T=k;continue;case k:if(!r)continue;if("u"!==r)return K("Invalid true started with tr"+r);T=A;continue;case A:if(!r)continue;if("e"!==r)return K("Invalid true started with tru"+r);s(!0),f(),T=j.pop()||l;continue;case S:if(!r)continue;if("a"!==r)return K("Invalid false started with f"+r);T=E;continue;case E:if(!r)continue;if("l"!==r)return K("Invalid false started with fa"+r);T=M;continue;case M:if(!r)continue;if("s"!==r)return K("Invalid false started with fal"+r);T=x;continue;case x:if(!r)continue;if("e"!==r)return K("Invalid false started with fals"+r);s(!1),f(),T=j.pop()||l;continue;case I:if(!r)continue;if("u"!==r)return K("Invalid null started with n"+r);T=P;continue;case P:if(!r)continue;if("l"!==r)return K("Invalid null started with nu"+r);T=N;continue;case N:if(!r)continue;if("l"!==r)return K("Invalid null started with nul"+r);s(null),f(),T=j.pop()||l;continue;case O:if("."!==r)return K("Leading zero not followed by .");U+=r,T=20;continue;case 20:if(-1!=="0123456789".indexOf(r))U+=r;else if("."===r){if(-1!==U.indexOf("."))return K("Invalid number has two dots");U+=r}else if("e"===r||"E"===r){if(-1!==U.indexOf("e")||-1!==U.indexOf("E"))return K("Invalid number has two exponential");U+=r}else if("+"===r||"-"===r){if("e"!==i&&"E"!==i)return K("Invalid symbol in number");U+=r}else U&&(s(parseFloat(U)),f(),U=""),u--,T=j.pop()||l;continue;default:return K("Unknown state: "+T)}z>=R&&(n=0,void 0!==o&&o.length>65536&&(K("Max buffer length exceeded: textNode"),n=Math.max(n,o.length)),U.length>65536&&(K("Max buffer length exceeded: numberNode"),n=Math.max(n,U.length)),R=65536-n+z)}})),e(n.n).on((function(){if(T===d)return s({}),f(),void(B=!0);T===l&&0===D||K("Unexpected end"),void 0!==o&&(s(o),f(),o=void 0),B=!0}))}},function(e,t,r){r.d(t,"a",(function(){return f})),r.d(t,"b",(function(){return u}));var n=r(19),i=r(3),o=r(2),a=r(20),s=r(0);function f(){return new XMLHttpRequest}function u(e,t,r,f,u,c,h){var d=e(i.m).emit,l=e(i.b).emit,p=0,b=!0;function m(){if("2"===String(t.status)[0]){var e=t.responseText,r=(" "+e.substr(p)).substr(1);r&&d(r),p=Object(o.e)(e)}}function v(t){try{b&&e(i.c).emit(t.status,Object(a.a)(t.getAllResponseHeaders())),b=!1}catch(e){}}e(i.a).on((function(){t.onreadystatechange=null,t.abort()})),"onprogress"in t&&(t.onprogress=m),t.onreadystatechange=function(){switch(t.readyState){case 2:case 3:return v(t);case 4:v(t),"2"===String(t.status)[0]?(m(),e(i.n).emit()):l(Object(i.o)(t.status,t.responseText))}};try{for(var y in t.open(r,f,!0),c)t.setRequestHeader(y,c[y]);Object(n.a)(window.location,Object(n.b)(f))||t.setRequestHeader("X-Requested-With","XMLHttpRequest"),t.withCredentials=h,t.send(u)}catch(e){window.setTimeout(Object(s.j)(l,Object(i.o)(void 0,void 0,e)),0)}}},function(e,t,r){function n(e,t){function r(t){return String(t.port||{"http:":80,"https:":443}[t.protocol||e.protocol])}return!!(t.protocol&&t.protocol!==e.protocol||t.host&&t.host!==e.host||t.host&&r(t)!==r(e))}function i(e){var t=/(\w+:)?(?:\/\/)([\w.-]+)?(?::(\d+))?\/?/.exec(e)||[];return{protocol:t[1]||"",host:t[2]||"",port:t[3]||""}}r.d(t,"a",(function(){return n})),r.d(t,"b",(function(){return i}))},function(e,t,r){function n(e){var t={};return e&&e.split("\r\n").forEach((function(e){var r=e.indexOf(": ");t[e.substring(0,r)]=e.substring(r+2)})),t}r.d(t,"a",(function(){return n}))}]).default},"object"===(0,s.default)(t)&&"object"===(0,s.default)(e)?e.exports=a():(i=[],void 0===(o="function"==typeof(n=a)?n.apply(t,i):n)||(e.exports=o))}).call(this,r(16)(e))},function(e,t,r){"use strict";var n=r(10).formatters,i=r(34),o=r(17);e.exports=function(e){var t=function(t){var r;return t.property?(e[t.property]||(e[t.property]={}),r=e[t.property]):r=e,t.methods&&t.methods.forEach((function(t){t instanceof i||(t=new i(t)),t.attachToObject(r),t.setRequestManager(e._requestManager)})),e};return t.formatters=n,t.utils=o,t.Method=i,t}},function(e,t,r){"use strict";(function(e){var t=r(0)(r(1)),n=function(e){var r=Object.prototype,n=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var i=t&&t.prototype instanceof d?t:d,o=Object.create(i.prototype),a=new S(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(i,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw o;return M()}for(r.method=i,r.arg=o;;){var a=r.delegate;if(a){var s=_(a,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var f=c(e,t,r);if("normal"===f.type){if(n=r.done?"completed":"suspendedYield",f.arg===h)continue;return{value:f.arg,done:r.done}}"throw"===f.type&&(n="completed",r.method="throw",r.arg=f.arg)}}}(e,r,a),o}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var h={};function d(){}function l(){}function p(){}var b={};b[o]=function(){return this};var m=Object.getPrototypeOf,v=m&&m(m(E([])));v&&v!==r&&n.call(v,o)&&(b=v);var y=p.prototype=d.prototype=Object.create(b);function g(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,r){var i;this._invoke=function(o,a){function s(){return new r((function(i,s){!function i(o,a,s,f){var u=c(e[o],e,a);if("throw"!==u.type){var h=u.arg,d=h.value;return d&&"object"===(0,t.default)(d)&&n.call(d,"__await")?r.resolve(d.__await).then((function(e){i("next",e,s,f)}),(function(e){i("throw",e,s,f)})):r.resolve(d).then((function(e){h.value=e,s(h)}),(function(e){return i("throw",e,s,f)}))}f(u.arg)}(o,a,i,s)}))}return i=i?i.then(s,s):s()}}function _(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,_(e,t),"throw"===t.method))return h;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,h;var i=n.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function E(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),f=n.call(o,"finallyLoc");if(s&&f){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;A(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}("object"===(0,t.default)(e)?e.exports:{});try{regeneratorRuntime=n}catch(e){Function("r","regeneratorRuntime = r")(n)}}).call(this,r(16)(e))},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(11),o=r(10).errors,a=r(78),s=r(10).formatters;function f(e){a.call(this),this.id=null,this.callback=i.identity,this.arguments=null,this.lastBlock=null,this.options={subscription:e.subscription,type:e.type,requestManager:e.requestManager}}f.prototype=Object.create(a.prototype),f.prototype.constructor=f,f.prototype._extractCallback=function(e){if(i.isFunction(e[e.length-1]))return e.pop()},f.prototype._validateArgs=function(e){var t=this.options.subscription;if(t||(t={}),t.params||(t.params=0),e.length!==t.params)throw o.InvalidNumberOfParams(e.length,t.params,t.subscriptionName)},f.prototype._formatInput=function(e){var t=this.options.subscription;return t&&t.inputFormatter?t.inputFormatter.map((function(t,r){return t?t(e[r]):e[r]})):e},f.prototype._formatOutput=function(e){var t=this.options.subscription;return t&&t.outputFormatter&&e?t.outputFormatter(e):e},f.prototype._toPayload=function(e){var t=[];if(this.callback=this._extractCallback(e)||i.identity,this.subscriptionMethod||(this.subscriptionMethod=e.shift(),this.options.subscription.subscriptionName&&(this.subscriptionMethod=this.options.subscription.subscriptionName)),this.arguments||(this.arguments=this._formatInput(e),this._validateArgs(this.arguments),e=[]),t.push(this.subscriptionMethod),t=t.concat(this.arguments),e.length)throw new Error("Only a callback is allowed as parameter on an already instantiated subscription.");return{method:this.options.type+"_subscribe",params:t}},f.prototype.unsubscribe=function(e){this.options.requestManager.removeSubscription(this.id,e),this.id=null,this.lastBlock=null,this.removeAllListeners()},f.prototype.subscribe=function(){var e=this,t=Array.prototype.slice.call(arguments),r=this._toPayload(t);if(!r)return this;if(!this.options.requestManager.provider)return setTimeout((function(){var t=new Error("No provider set.");e.callback(t,null,e),e.emit("error",t)}),0),this;if(!this.options.requestManager.provider.on)return setTimeout((function(){var t=new Error("The current provider doesn't support subscriptions: "+e.options.requestManager.provider.constructor.name);e.callback(t,null,e),e.emit("error",t)}),0),this;if(this.lastBlock&&i.isObject(this.options.params)&&(r.params[1]=this.options.params,r.params[1].fromBlock=s.inputBlockNumberFormatter(this.lastBlock+1)),this.id&&this.unsubscribe(),this.options.params=r.params[1],"logs"===r.params[0]&&i.isObject(r.params[1])&&r.params[1].hasOwnProperty("fromBlock")&&isFinite(r.params[1].fromBlock)){var o=Object.assign({},r.params[1]);this.options.requestManager.send({method:"eth_getLogs",params:[o]},(function(t,r){t?setTimeout((function(){e.callback(t,null,e),e.emit("error",t)}),0):r.forEach((function(t){var r=e._formatOutput(t);e.callback(null,r,e),e.emit("data",r)}))}))}return"object"===(0,n.default)(r.params[1])&&delete r.params[1].fromBlock,this.options.requestManager.send(r,(function(t,n){!t&&n?(e.id=n,e.method=r.params[0],e.emit("connected",n),e.options.requestManager.addSubscription(e,(function(t,r){t?(e.callback(t,!1,e),e.emit("error",t)):(i.isArray(r)||(r=[r]),r.forEach((function(t){var r=e._formatOutput(t);if(e.lastBlock=i.isObject(r)?r.blockNumber:null,i.isFunction(e.options.subscription.subscriptionHandler))return e.options.subscription.subscriptionHandler.call(e,r);e.emit("data",r),e.callback(null,r,e)})))}))):setTimeout((function(){e.callback(t,!1,e),e.emit("error",t)}),0)})),this},f.prototype.resubscribe=function(){this.options.requestManager.removeSubscription(this.id),this.id=null,this.subscribe(this.callback)},e.exports=f},function(e,t,r){"use strict";var n=r(268);Object.defineProperty(t,"__esModule",{value:!0}),t.computeAddress=g,t.recoverAddress=w,t.serialize=function(e,t){(0,u.checkProperties)(e,y);var r=[];v.forEach((function(t){var n=e[t.name]||[],i={};t.numeric&&(i.hexPad="left"),n=(0,a.arrayify)((0,a.hexlify)(n,i)),t.length&&n.length!==t.length&&n.length>0&&p.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=(0,a.stripZeros)(n)).length>t.maxLength&&p.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),r.push((0,a.hexlify)(n))}));var n=0;null!=e.chainId?"number"!=typeof(n=e.chainId)&&p.throwArgumentError("invalid transaction.chainId","transaction",e):t&&!(0,a.isBytesLike)(t)&&t.v>28&&(n=Math.floor((t.v-35)/2));0!==n&&(r.push((0,a.hexlify)(n)),r.push("0x"),r.push("0x"));if(!t)return c.encode(r);var i=(0,a.splitSignature)(t),o=27+i.recoveryParam;0!==n?(r.pop(),r.pop(),r.pop(),o+=2*n+8,i.v>28&&i.v!==o&&p.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&p.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t);return r.push((0,a.hexlify)(o)),r.push((0,a.stripZeros)((0,a.arrayify)(i.r))),r.push((0,a.stripZeros)((0,a.arrayify)(i.s))),c.encode(r)},t.parse=function(e){var t=c.decode(e);9!==t.length&&6!==t.length&&p.throwArgumentError("invalid raw transaction","rawTransaction",e);var r={nonce:m(t[0]).toNumber(),gasPrice:m(t[1]),gasLimit:m(t[2]),to:b(t[3]),value:m(t[4]),data:t[5],chainId:0};if(6===t.length)return r;try{r.v=o.BigNumber.from(t[6]).toNumber()}catch(e){return console.log(e),r}if(r.r=(0,a.hexZeroPad)(t[7],32),r.s=(0,a.hexZeroPad)(t[8],32),o.BigNumber.from(r.r).isZero()&&o.BigNumber.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);var n=r.v-27,i=t.slice(0,6);0!==r.chainId&&(i.push((0,a.hexlify)(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);var s=(0,f.keccak256)(c.encode(i));try{r.from=w(s,{r:(0,a.hexlify)(r.r),s:(0,a.hexlify)(r.s),recoveryParam:n})}catch(e){console.log(e)}r.hash=(0,f.keccak256)(e)}return r};var i=r(269),o=r(84),a=r(35),s=r(276),f=r(126),u=r(128),c=n(r(127)),h=r(278),d=r(29),l=r(299),p=new d.Logger(l.version);function b(e){return"0x"===e?null:(0,i.getAddress)(e)}function m(e){return"0x"===e?s.Zero:o.BigNumber.from(e)}var v=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],y={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0};function g(e){var t=(0,h.computePublicKey)(e);return(0,i.getAddress)((0,a.hexDataSlice)((0,f.keccak256)((0,a.hexDataSlice)(t,1)),12))}function w(e,t){return g((0,h.recoverPublicKey)((0,a.arrayify)(e),t))}},function(e,t,r){"use strict";var n=r(1);function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var s=o?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getAddress=y,t.isAddress=function(e){try{return y(e),!0}catch(e){}return!1},t.getIcapAddress=function(e){var t=new n.BN(y(e).substring(2),16).toString(36).toUpperCase();for(;t.length<30;)t="0"+t;return"XE"+v("XE00"+t)+t},t.getContractAddress=function(e){var t=null;try{t=y(e.from)}catch(t){c.throwArgumentError("missing from address","transaction",e)}var r=(0,i.stripZeros)((0,i.arrayify)(o.BigNumber.from(e.nonce).toHexString()));return y((0,i.hexDataSlice)((0,a.keccak256)((0,s.encode)([t,r])),12))},t.getCreate2Address=function(e,t,r){32!==(0,i.hexDataLength)(t)&&c.throwArgumentError("salt must be 32 bytes","salt",t);32!==(0,i.hexDataLength)(r)&&c.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",r);return y((0,i.hexDataSlice)((0,a.keccak256)((0,i.concat)(["0xff",y(e),t,r])),12))};var n=r(4),i=r(35),o=r(84),a=r(126),s=r(127),f=r(29),u=r(275),c=new f.Logger(u.version);function h(e){(0,i.isHexString)(e,20)||c.throwArgumentError("invalid address","address",e);for(var t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40),n=0;n<40;n++)r[n]=t[n].charCodeAt(0);for(var o=(0,i.arrayify)((0,a.keccak256)(r)),s=0;s<40;s+=2)o[s>>1]>>4>=8&&(t[s]=t[s].toUpperCase()),(15&o[s>>1])>=8&&(t[s+1]=t[s+1].toUpperCase());return"0x"+t.join("")}for(var d={},l=0;l<10;l++)d[String(l)]=String(l);for(var p=0;p<26;p++)d[String.fromCharCode(65+p)]=String(10+p);var b,m=Math.floor((b=9007199254740991,Math.log10?Math.log10(b):Math.log(b)/Math.LN10));function v(e){for(var t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((function(e){return d[e]})).join("");t.length>=m;){var r=t.substring(0,m);t=parseInt(r,10)%97+t.substring(r.length)}for(var n=String(98-parseInt(t,10)%97);n.length<2;)n="0"+n;return n}function y(e){var t=null;if("string"!=typeof e&&c.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=h(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&c.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==v(e)&&c.throwArgumentError("bad icap checksum","address",e),t=new n.BN(e.substring(4),36).toString(16);t.length<40;)t="0"+t;t=h("0x"+t)}else c.throwArgumentError("invalid address","address",e);return t}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="logger/5.0.4"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="bytes/5.0.3"},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.formatFixed=y,t.parseFixed=g,t.FixedNumber=t.FixedFormat=void 0;var i=n(r(1)),o=n(r(6)),a=n(r(7)),s=r(35),f=r(29),u=r(125),c=r(124),h=new f.Logger(u.version),d={},l=c.BigNumber.from(0),p=c.BigNumber.from(-1);function b(e,t,r,n){var i={fault:t,operation:r};return void 0!==n&&(i.value=n),h.throwError(e,f.Logger.errors.NUMERIC_FAULT,i)}for(var m="0";m.length<256;)m+=m;function v(e){if("number"!=typeof e)try{e=c.BigNumber.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+m.substring(0,e):h.throwArgumentError("invalid decimal size","decimals",e)}function y(e,t){null==t&&(t=0);var r=v(t),n=(e=c.BigNumber.from(e)).lt(l);n&&(e=e.mul(p));for(var i=e.mod(r).toString();i.length2&&h.throwArgumentError("too many decimal points","value",e);var o=i[0],a=i[1];for(o||(o="0"),a||(a="0"),a.length>r.length-1&&b("fractional component exceeds decimals","underflow","parseFixed");a.length80&&h.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",o),new e(d,r,n,o)}}]),e}();t.FixedFormat=w;var _=function(){function e(t,r,n,i){(0,o.default)(this,e),h.checkNew(this instanceof e?this.constructor:void 0,e),t!==d&&h.throwError("cannot use FixedNumber constructor; use FixedNumber.from",f.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=i,this._hex=r,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}return(0,a.default)(e,[{key:"_checkFormat",value:function(e){this.format.name!==e.format.name&&h.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}},{key:"addUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.add(n),this.format.decimals,this.format)}},{key:"subUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.sub(n),this.format.decimals,this.format)}},{key:"mulUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}},{key:"divUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}},{key:"round",value:function(t){null==t&&(t=0),(t<0||t>80||t%1)&&h.throwArgumentError("invalid decimal count","decimals",t);var r=this.toString().split(".");if(r[1].length<=t)return this;var n="0."+m.substring(0,t)+"5";return r=this.addUnsafe(e.fromString(n,this.format))._value.split("."),e.fromString(r[0]+"."+r[1].substring(0,t))}},{key:"isZero",value:function(){return"0.0"===this._value}},{key:"toString",value:function(){return this._value}},{key:"toHexString",value:function(e){if(null==e)return this._hex;e%8&&h.throwArgumentError("invalid byte width","width",e);var t=c.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString();return(0,s.hexZeroPad)(t,e/8)}},{key:"toUnsafeFloat",value:function(){return parseFloat(this.toString())}},{key:"toFormat",value:function(t){return e.fromString(this._value,t)}}],[{key:"fromValue",value:function(t,r,n){return null!=n||null==r||(0,c.isBigNumberish)(r)||(n=r,r=null),null==r&&(r=0),null==n&&(n="fixed"),e.fromString(y(t,r),w.from(n))}},{key:"fromString",value:function(t,r){null==r&&(r="fixed");var n=w.from(r),i=g(t,n.decimals);!n.signed&&i.lt(l)&&b("unsigned value cannot be negative","overflow","value",t);var o=null;n.signed?o=i.toTwos(n.width).toHexString():(o=i.toHexString(),o=(0,s.hexZeroPad)(o,n.width/8));var a=y(i,n.decimals);return new e(d,o,a,n)}},{key:"fromBytes",value:function(t,r){null==r&&(r="fixed");var n=w.from(r);if((0,s.arrayify)(t).length>n.width/8)throw new Error("overflow");var i=c.BigNumber.from(t);n.signed&&(i=i.fromTwos(n.width));var o=i.toTwos((n.signed?0:1)+n.width).toHexString(),a=y(i,n.decimals);return new e(d,o,a,n)}},{key:"from",value:function(t,r){if("string"==typeof t)return e.fromString(t,r);if((0,s.isBytes)(t))return e.fromBytes(t,r);try{return e.fromValue(t,0,r)}catch(e){if(e.code!==f.Logger.errors.INVALID_ARGUMENT)throw e}return h.throwArgumentError("invalid FixedNumber value","value",t)}},{key:"isFixedNumber",value:function(e){return!(!e||!e._isFixedNumber)}}]),e}();t.FixedNumber=_},function(e,t,r){"use strict";(function(e,t,n){var i=r(0)(r(1)); +a=function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=7)}([function(t,e,r){r.d(e,"j",(function(){return i})),r.d(e,"d",(function(){return o})),r.d(e,"c",(function(){return a})),r.d(e,"h",(function(){return s})),r.d(e,"b",(function(){return u})),r.d(e,"k",(function(){return f})),r.d(e,"e",(function(){return c})),r.d(e,"g",(function(){return h})),r.d(e,"i",(function(){return d})),r.d(e,"a",(function(){return l})),r.d(e,"f",(function(){return p}));var n=r(1),i=f((function(t,e){var r=e.length;return f((function(n){for(var i=0;i0&&(i=r),r=t[f++]);)switch(q++,"\n"===r?(H++,z=0):z++,N){case d:if("{"===r)N=p;else if("["===r)N=m;else if(!V(r))return K("Non-whitespace before {[.");continue;case g:case p:if(V(r))continue;if(N===g)j.push(w);else{if("}"===r){s({}),u(),N=j.pop()||l;continue}j.push(b)}if('"'!==r)return K('Malformed object key should start with " ');N=v;continue;case w:case b:if(V(r))continue;if(":"===r)N===b?(j.push(b),void 0!==o&&(s({}),a(o),o=void 0),D++):void 0!==o&&(a(o),o=void 0),N=l;else if("}"===r)void 0!==o&&(s(o),u(),o=void 0),u(),D--,N=j.pop()||l;else{if(","!==r)return K("Bad object");N===b&&j.push(b),void 0!==o&&(s(o),u(),o=void 0),N=g}continue;case m:case l:if(V(r))continue;if(N===m){if(s([]),D++,N=l,"]"===r){u(),D--,N=j.pop()||l;continue}j.push(y)}if('"'===r)N=v;else if("{"===r)N=p;else if("["===r)N=m;else if("t"===r)N=_;else if("f"===r)N=S;else if("n"===r)N=I;else if("-"===r)T+=r;else if("0"===r)T+=r,N=20;else{if(-1==="123456789".indexOf(r))return K("Bad value");T+=r,N=20}continue;case y:if(","===r)j.push(y),void 0!==o&&(s(o),u(),o=void 0),N=l;else{if("]"!==r){if(V(r))continue;return K("Bad array")}void 0!==o&&(s(o),u(),o=void 0),u(),D--,N=j.pop()||l}continue;case v:void 0===o&&(o="");var h=f-1;t:for(;;){for(;F>0;)if(L+=r,r=t.charAt(f++),4===F?(o+=String.fromCharCode(parseInt(L,16)),F=0,h=f-1):F++,!r)break t;if('"'===r&&!R){N=j.pop()||l,o+=t.substring(h,f-1);break}if(!("\\"!==r||R||(R=!0,o+=t.substring(h,f-1),r=t.charAt(f++))))break;if(R){if(R=!1,"n"===r?o+="\n":"r"===r?o+="\r":"t"===r?o+="\t":"f"===r?o+="\f":"b"===r?o+="\b":"u"===r?(F=1,L=""):o+=r,r=t.charAt(f++),h=f-1,r)continue;break}c.lastIndex=f;var G=c.exec(t);if(!G){f=t.length+1,o+=t.substring(h,f-1);break}if(f=G.index+1,!(r=t.charAt(G.index))){o+=t.substring(h,f-1);break}}continue;case _:if(!r)continue;if("r"!==r)return K("Invalid true started with t"+r);N=k;continue;case k:if(!r)continue;if("u"!==r)return K("Invalid true started with tr"+r);N=A;continue;case A:if(!r)continue;if("e"!==r)return K("Invalid true started with tru"+r);s(!0),u(),N=j.pop()||l;continue;case S:if(!r)continue;if("a"!==r)return K("Invalid false started with f"+r);N=M;continue;case M:if(!r)continue;if("l"!==r)return K("Invalid false started with fa"+r);N=E;continue;case E:if(!r)continue;if("s"!==r)return K("Invalid false started with fal"+r);N=x;continue;case x:if(!r)continue;if("e"!==r)return K("Invalid false started with fals"+r);s(!1),u(),N=j.pop()||l;continue;case I:if(!r)continue;if("u"!==r)return K("Invalid null started with n"+r);N=O;continue;case O:if(!r)continue;if("l"!==r)return K("Invalid null started with nu"+r);N=P;continue;case P:if(!r)continue;if("l"!==r)return K("Invalid null started with nul"+r);s(null),u(),N=j.pop()||l;continue;case C:if("."!==r)return K("Leading zero not followed by .");T+=r,N=20;continue;case 20:if(-1!=="0123456789".indexOf(r))T+=r;else if("."===r){if(-1!==T.indexOf("."))return K("Invalid number has two dots");T+=r}else if("e"===r||"E"===r){if(-1!==T.indexOf("e")||-1!==T.indexOf("E"))return K("Invalid number has two exponential");T+=r}else if("+"===r||"-"===r){if("e"!==i&&"E"!==i)return K("Invalid symbol in number");T+=r}else T&&(s(parseFloat(T)),u(),T=""),f--,N=j.pop()||l;continue;default:return K("Unknown state: "+N)}q>=B&&(n=0,void 0!==o&&o.length>65536&&(K("Max buffer length exceeded: textNode"),n=Math.max(n,o.length)),T.length>65536&&(K("Max buffer length exceeded: numberNode"),n=Math.max(n,T.length)),B=65536-n+q)}})),t(n.n).on((function(){if(N===d)return s({}),u(),void(U=!0);N===l&&0===D||K("Unexpected end"),void 0!==o&&(s(o),u(),o=void 0),U=!0}))}},function(t,e,r){r.d(e,"a",(function(){return u})),r.d(e,"b",(function(){return f}));var n=r(19),i=r(3),o=r(2),a=r(20),s=r(0);function u(){return new XMLHttpRequest}function f(t,e,r,u,f,c,h){var d=t(i.m).emit,l=t(i.b).emit,p=0,b=!0;function m(){if("2"===String(e.status)[0]){var t=e.responseText,r=(" "+t.substr(p)).substr(1);r&&d(r),p=Object(o.e)(t)}}function y(e){try{b&&t(i.c).emit(e.status,Object(a.a)(e.getAllResponseHeaders())),b=!1}catch(t){}}t(i.a).on((function(){e.onreadystatechange=null,e.abort()})),"onprogress"in e&&(e.onprogress=m),e.onreadystatechange=function(){switch(e.readyState){case 2:case 3:return y(e);case 4:y(e),"2"===String(e.status)[0]?(m(),t(i.n).emit()):l(Object(i.o)(e.status,e.responseText))}};try{for(var v in e.open(r,u,!0),c)e.setRequestHeader(v,c[v]);Object(n.a)(window.location,Object(n.b)(u))||e.setRequestHeader("X-Requested-With","XMLHttpRequest"),e.withCredentials=h,e.send(f)}catch(t){window.setTimeout(Object(s.j)(l,Object(i.o)(void 0,void 0,t)),0)}}},function(t,e,r){function n(t,e){function r(e){return String(e.port||{"http:":80,"https:":443}[e.protocol||t.protocol])}return!!(e.protocol&&e.protocol!==t.protocol||e.host&&e.host!==t.host||e.host&&r(e)!==r(t))}function i(t){var e=/(\w+:)?(?:\/\/)([\w.-]+)?(?::(\d+))?\/?/.exec(t)||[];return{protocol:e[1]||"",host:e[2]||"",port:e[3]||""}}r.d(e,"a",(function(){return n})),r.d(e,"b",(function(){return i}))},function(t,e,r){function n(t){var e={};return t&&t.split("\r\n").forEach((function(t){var r=t.indexOf(": ");e[t.substring(0,r)]=t.substring(r+2)})),e}r.d(e,"a",(function(){return n}))}]).default},"object"===(0,s.default)(e)&&"object"===(0,s.default)(t)?t.exports=a():(i=[],void 0===(o="function"==typeof(n=a)?n.apply(e,i):n)||(t.exports=o))}).call(this,r(24)(t))},function(t,e,r){"use strict";var n=r(9).formatters,i=r(32),o=r(18);t.exports=function(t){var e=function(e){var r;return e.property?(t[e.property]||(t[e.property]={}),r=t[e.property]):r=t,e.methods&&e.methods.forEach((function(e){e instanceof i||(e=new i(e)),e.attachToObject(r),e.setRequestManager(t._requestManager)})),t};return e.formatters=n,e.utils=o,e.Method=i,e}},function(t,e,r){"use strict";(function(t){var e=r(0)(r(1)),n=function(t){var r=Object.prototype,n=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function f(t,e,r,n){var i=e&&e.prototype instanceof d?e:d,o=Object.create(i.prototype),a=new S(n||[]);return o._invoke=function(t,e,r){var n="suspendedStart";return function(i,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw o;return E()}for(r.method=i,r.arg=o;;){var a=r.delegate;if(a){var s=_(a,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=c(t,e,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(t,r,a),o}function c(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=f;var h={};function d(){}function l(){}function p(){}var b={};b[o]=function(){return this};var m=Object.getPrototypeOf,y=m&&m(m(M([])));y&&y!==r&&n.call(y,o)&&(b=y);var v=p.prototype=d.prototype=Object.create(b);function g(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function w(t,r){var i;this._invoke=function(o,a){function s(){return new r((function(i,s){!function i(o,a,s,u){var f=c(t[o],t,a);if("throw"!==f.type){var h=f.arg,d=h.value;return d&&"object"===(0,e.default)(d)&&n.call(d,"__await")?r.resolve(d.__await).then((function(t){i("next",t,s,u)}),(function(t){i("throw",t,s,u)})):r.resolve(d).then((function(t){h.value=t,s(h)}),(function(t){return i("throw",t,s,u)}))}u(f.arg)}(o,a,i,s)}))}return i=i?i.then(s,s):s()}}function _(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,_(t,e),"throw"===e.method))return h;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var n=c(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,h;var i=n.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,h):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,h)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function M(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),u=n.call(o,"finallyLoc");if(s&&u){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),h}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;A(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:M(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},t}("object"===(0,e.default)(t)?t.exports:{});try{regeneratorRuntime=n}catch(t){Function("r","regeneratorRuntime = r")(n)}}).call(this,r(24)(t))},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(10),o=r(9).errors,a=r(72),s=r(9).formatters;function u(t){a.call(this),this.id=null,this.callback=i.identity,this.arguments=null,this.lastBlock=null,this.options={subscription:t.subscription,type:t.type,requestManager:t.requestManager}}u.prototype=Object.create(a.prototype),u.prototype.constructor=u,u.prototype._extractCallback=function(t){if(i.isFunction(t[t.length-1]))return t.pop()},u.prototype._validateArgs=function(t){var e=this.options.subscription;if(e||(e={}),e.params||(e.params=0),t.length!==e.params)throw o.InvalidNumberOfParams(t.length,e.params,e.subscriptionName)},u.prototype._formatInput=function(t){var e=this.options.subscription;return e&&e.inputFormatter?e.inputFormatter.map((function(e,r){return e?e(t[r]):t[r]})):t},u.prototype._formatOutput=function(t){var e=this.options.subscription;return e&&e.outputFormatter&&t?e.outputFormatter(t):t},u.prototype._toPayload=function(t){var e=[];if(this.callback=this._extractCallback(t)||i.identity,this.subscriptionMethod||(this.subscriptionMethod=t.shift(),this.options.subscription.subscriptionName&&(this.subscriptionMethod=this.options.subscription.subscriptionName)),this.arguments||(this.arguments=this._formatInput(t),this._validateArgs(this.arguments),t=[]),e.push(this.subscriptionMethod),e=e.concat(this.arguments),t.length)throw new Error("Only a callback is allowed as parameter on an already instantiated subscription.");return{method:this.options.type+"_subscribe",params:e}},u.prototype.unsubscribe=function(t){this.options.requestManager.removeSubscription(this.id,t),this.id=null,this.lastBlock=null,this.removeAllListeners()},u.prototype.subscribe=function(){var t=this,e=Array.prototype.slice.call(arguments),r=this._toPayload(e);if(!r)return this;if(!this.options.requestManager.provider)return setTimeout((function(){var e=new Error("No provider set.");t.callback(e,null,t),t.emit("error",e)}),0),this;if(!this.options.requestManager.provider.on)return setTimeout((function(){var e=new Error("The current provider doesn't support subscriptions: "+t.options.requestManager.provider.constructor.name);t.callback(e,null,t),t.emit("error",e)}),0),this;if(this.lastBlock&&i.isObject(this.options.params)&&(r.params[1]=this.options.params,r.params[1].fromBlock=s.inputBlockNumberFormatter(this.lastBlock+1)),this.id&&this.unsubscribe(),this.options.params=r.params[1],"logs"===r.params[0]&&i.isObject(r.params[1])&&r.params[1].hasOwnProperty("fromBlock")&&isFinite(r.params[1].fromBlock)){var o=Object.assign({},r.params[1]);this.options.requestManager.send({method:"eth_getLogs",params:[o]},(function(e,r){e?setTimeout((function(){t.callback(e,null,t),t.emit("error",e)}),0):r.forEach((function(e){var r=t._formatOutput(e);t.callback(null,r,t),t.emit("data",r)}))}))}return"object"===(0,n.default)(r.params[1])&&delete r.params[1].fromBlock,this.options.requestManager.send(r,(function(e,n){!e&&n?(t.id=n,t.method=r.params[0],t.emit("connected",n),t.options.requestManager.addSubscription(t,(function(e,r){e?(t.callback(e,!1,t),t.emit("error",e)):(i.isArray(r)||(r=[r]),r.forEach((function(e){var r=t._formatOutput(e);if(t.lastBlock=i.isObject(r)?r.blockNumber:null,i.isFunction(t.options.subscription.subscriptionHandler))return t.options.subscription.subscriptionHandler.call(t,r);t.emit("data",r),t.callback(null,r,t)})))}))):setTimeout((function(){t.callback(e,!1,t),t.emit("error",e)}),0)})),this},u.prototype.resubscribe=function(){this.options.requestManager.removeSubscription(this.id),this.id=null,this.subscribe(this.callback)},t.exports=u},function(t,e,r){"use strict";var n=r(252);Object.defineProperty(e,"__esModule",{value:!0}),e.computeAddress=g,e.recoverAddress=w,e.serialize=function(t,e){(0,f.checkProperties)(t,v);var r=[];y.forEach((function(e){var n=t[e.name]||[],i={};e.numeric&&(i.hexPad="left"),n=(0,a.arrayify)((0,a.hexlify)(n,i)),e.length&&n.length!==e.length&&n.length>0&&p.throwArgumentError("invalid length for "+e.name,"transaction:"+e.name,n),e.maxLength&&(n=(0,a.stripZeros)(n)).length>e.maxLength&&p.throwArgumentError("invalid length for "+e.name,"transaction:"+e.name,n),r.push((0,a.hexlify)(n))}));var n=0;null!=t.chainId?"number"!=typeof(n=t.chainId)&&p.throwArgumentError("invalid transaction.chainId","transaction",t):e&&!(0,a.isBytesLike)(e)&&e.v>28&&(n=Math.floor((e.v-35)/2));0!==n&&(r.push((0,a.hexlify)(n)),r.push("0x"),r.push("0x"));if(!e)return c.encode(r);var i=(0,a.splitSignature)(e),o=27+i.recoveryParam;0!==n?(r.pop(),r.pop(),r.pop(),o+=2*n+8,i.v>28&&i.v!==o&&p.throwArgumentError("transaction.chainId/signature.v mismatch","signature",e)):i.v!==o&&p.throwArgumentError("transaction.chainId/signature.v mismatch","signature",e);return r.push((0,a.hexlify)(o)),r.push((0,a.stripZeros)((0,a.arrayify)(i.r))),r.push((0,a.stripZeros)((0,a.arrayify)(i.s))),c.encode(r)},e.parse=function(t){var e=c.decode(t);9!==e.length&&6!==e.length&&p.throwArgumentError("invalid raw transaction","rawTransaction",t);var r={nonce:m(e[0]).toNumber(),gasPrice:m(e[1]),gasLimit:m(e[2]),to:b(e[3]),value:m(e[4]),data:e[5],chainId:0};if(6===e.length)return r;try{r.v=o.BigNumber.from(e[6]).toNumber()}catch(t){return console.log(t),r}if(r.r=(0,a.hexZeroPad)(e[7],32),r.s=(0,a.hexZeroPad)(e[8],32),o.BigNumber.from(r.r).isZero()&&o.BigNumber.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);var n=r.v-27,i=e.slice(0,6);0!==r.chainId&&(i.push((0,a.hexlify)(r.chainId)),i.push("0x"),i.push("0x"),n-=2*r.chainId+8);var s=(0,u.keccak256)(c.encode(i));try{r.from=w(s,{r:(0,a.hexlify)(r.r),s:(0,a.hexlify)(r.s),recoveryParam:n})}catch(t){console.log(t)}r.hash=(0,u.keccak256)(t)}return r};var i=r(78),o=r(33),a=r(13),s=r(79),u=r(59),f=r(36),c=n(r(121)),h=r(264),d=r(16),l=r(273),p=new d.Logger(l.version);function b(t){return"0x"===t?null:(0,i.getAddress)(t)}function m(t){return"0x"===t?s.Zero:o.BigNumber.from(t)}var y=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],v={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0};function g(t){var e=(0,h.computePublicKey)(t);return(0,i.getAddress)((0,a.hexDataSlice)((0,u.keccak256)((0,a.hexDataSlice)(e,1)),12))}function w(t,e){return g((0,h.recoverPublicKey)((0,a.arrayify)(t),e))}},function(t,e,r){"use strict";var n=r(1);function i(){if("function"!=typeof WeakMap)return null;var t=new WeakMap;return i=function(){return t},t}t.exports=function(t){if(t&&t.__esModule)return t;if(null===t||"object"!==n(t)&&"function"!=typeof t)return{default:t};var e=i();if(e&&e.has(t))return e.get(t);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if(Object.prototype.hasOwnProperty.call(t,a)){var s=o?Object.getOwnPropertyDescriptor(t,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=t[a]}return r.default=t,e&&e.set(t,r),r}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.version=void 0;e.version="logger/5.0.8"},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.version=void 0;e.version="bytes/5.0.9"},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.formatFixed=v,e.parseFixed=g,e.FixedNumber=e.FixedFormat=void 0;var i=n(r(1)),o=n(r(6)),a=n(r(8)),s=r(13),u=r(16),f=r(120),c=r(119),h=new u.Logger(f.version),d={},l=c.BigNumber.from(0),p=c.BigNumber.from(-1);function b(t,e,r,n){var i={fault:e,operation:r};return void 0!==n&&(i.value=n),h.throwError(t,u.Logger.errors.NUMERIC_FAULT,i)}for(var m="0";m.length<256;)m+=m;function y(t){if("number"!=typeof t)try{t=c.BigNumber.from(t).toNumber()}catch(t){}return"number"==typeof t&&t>=0&&t<=256&&!(t%1)?"1"+m.substring(0,t):h.throwArgumentError("invalid decimal size","decimals",t)}function v(t,e){null==e&&(e=0);var r=y(e),n=(t=c.BigNumber.from(t)).lt(l);n&&(t=t.mul(p));for(var i=t.mod(r).toString();i.length2&&h.throwArgumentError("too many decimal points","value",t);var o=i[0],a=i[1];for(o||(o="0"),a||(a="0"),a.length>r.length-1&&b("fractional component exceeds decimals","underflow","parseFixed");a.length80&&h.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",o),new t(d,r,n,o)}}]),t}();e.FixedFormat=w;var _=function(){function t(e,r,n,i){(0,o.default)(this,t),h.checkNew(this instanceof t?this.constructor:void 0,t),e!==d&&h.throwError("cannot use FixedNumber constructor; use FixedNumber.from",u.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=i,this._hex=r,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}return(0,a.default)(t,[{key:"_checkFormat",value:function(t){this.format.name!==t.format.name&&h.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",t)}},{key:"addUnsafe",value:function(e){this._checkFormat(e);var r=g(this._value,this.format.decimals),n=g(e._value,e.format.decimals);return t.fromValue(r.add(n),this.format.decimals,this.format)}},{key:"subUnsafe",value:function(e){this._checkFormat(e);var r=g(this._value,this.format.decimals),n=g(e._value,e.format.decimals);return t.fromValue(r.sub(n),this.format.decimals,this.format)}},{key:"mulUnsafe",value:function(e){this._checkFormat(e);var r=g(this._value,this.format.decimals),n=g(e._value,e.format.decimals);return t.fromValue(r.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}},{key:"divUnsafe",value:function(e){this._checkFormat(e);var r=g(this._value,this.format.decimals),n=g(e._value,e.format.decimals);return t.fromValue(r.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}},{key:"floor",value:function(){var e=this.toString().split("."),r=t.from(e[0],this.format),n=!e[1].match(/^(0*)$/);return this.isNegative()&&n&&(r=r.subUnsafe(k)),r}},{key:"ceiling",value:function(){var e=this.toString().split("."),r=t.from(e[0],this.format),n=!e[1].match(/^(0*)$/);return!this.isNegative()&&n&&(r=r.addUnsafe(k)),r}},{key:"round",value:function(e){null==e&&(e=0);var r=this.toString().split(".");if((e<0||e>80||e%1)&&h.throwArgumentError("invalid decimal count","decimals",e),r[1].length<=e)return this;var n=t.from("1"+m.substring(0,e));return this.mulUnsafe(n).addUnsafe(A).floor().divUnsafe(n)}},{key:"isZero",value:function(){return"0.0"===this._value}},{key:"isNegative",value:function(){return"-"===this._value[0]}},{key:"toString",value:function(){return this._value}},{key:"toHexString",value:function(t){if(null==t)return this._hex;t%8&&h.throwArgumentError("invalid byte width","width",t);var e=c.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(t).toHexString();return(0,s.hexZeroPad)(e,t/8)}},{key:"toUnsafeFloat",value:function(){return parseFloat(this.toString())}},{key:"toFormat",value:function(e){return t.fromString(this._value,e)}}],[{key:"fromValue",value:function(e,r,n){return null!=n||null==r||(0,c.isBigNumberish)(r)||(n=r,r=null),null==r&&(r=0),null==n&&(n="fixed"),t.fromString(v(e,r),w.from(n))}},{key:"fromString",value:function(e,r){null==r&&(r="fixed");var n=w.from(r),i=g(e,n.decimals);!n.signed&&i.lt(l)&&b("unsigned value cannot be negative","overflow","value",e);var o=null;n.signed?o=i.toTwos(n.width).toHexString():(o=i.toHexString(),o=(0,s.hexZeroPad)(o,n.width/8));var a=v(i,n.decimals);return new t(d,o,a,n)}},{key:"fromBytes",value:function(e,r){null==r&&(r="fixed");var n=w.from(r);if((0,s.arrayify)(e).length>n.width/8)throw new Error("overflow");var i=c.BigNumber.from(e);n.signed&&(i=i.fromTwos(n.width));var o=i.toTwos((n.signed?0:1)+n.width).toHexString(),a=v(i,n.decimals);return new t(d,o,a,n)}},{key:"from",value:function(e,r){if("string"==typeof e)return t.fromString(e,r);if((0,s.isBytes)(e))return t.fromBytes(e,r);try{return t.fromValue(e,0,r)}catch(t){if(t.code!==u.Logger.errors.INVALID_ARGUMENT)throw t}return h.throwArgumentError("invalid FixedNumber value","value",e)}},{key:"isFixedNumber",value:function(t){return!(!t||!t._isFixedNumber)}}]),t}();e.FixedNumber=_;var k=_.from(1),A=_.from("0.5")},function(t,e,r){"use strict";(function(t,e,n){var i=r(0)(r(1)); /** * [js-sha3]{@link https://github.com/emn178/js-sha3} * @@ -41,7 +41,7 @@ a=function(){return function(e){var t={};function r(n){if(t[n])return t[n].expor * @copyright Chen, Yi-Cyuan 2015-2016 * @license MIT */ -!function(){var r="object"===("undefined"==typeof window?"undefined":(0,i.default)(window))?window:{};!r.JS_SHA3_NO_NODE_JS&&"object"===(void 0===e?"undefined":(0,i.default)(e))&&e.versions&&e.versions.node&&(r=t);for(var o=!r.JS_SHA3_NO_COMMON_JS&&"object"===(0,i.default)(n)&&n.exports,a="0123456789abcdef".split(""),s=[0,8,16,24],f=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],u=[224,256,384,512],c=["hex","buffer","arrayBuffer","array"],h=function(e,t,r){return function(n){return new k(e,t,e).update(n)[r]()}},d=function(e,t,r){return function(n,i){return new k(e,t,i).update(n)[r]()}},l=function(e,t){var r=h(e,t,"hex");r.create=function(){return new k(e,t,e)},r.update=function(e){return r.create().update(e)};for(var n=0;n>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}k.prototype.update=function(e){var t="string"!=typeof e;t&&e.constructor===ArrayBuffer&&(e=new Uint8Array(e));for(var r,n,i=e.length,o=this.blocks,a=this.byteCount,f=this.blockCount,u=0,c=this.s;u>2]|=e[u]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(o[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=a){for(this.start=r-a,this.block=o[f],r=0;r>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(A(r),o=0)}return i&&(e=r[o],i>0&&(f+=a[e>>4&15]+a[15&e]),i>1&&(f+=a[e>>12&15]+a[e>>8&15]),i>2&&(f+=a[e>>20&15]+a[e>>16&15])),f},k.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var f=new Uint32Array(e);a>8&255,f[e+2]=t>>16&255,f[e+3]=t>>24&255;s%r==0&&A(n)}return o&&(e=s<<2,t=n[a],o>0&&(f[e]=255&t),o>1&&(f[e+1]=t>>8&255),o>2&&(f[e+2]=t>>16&255)),f};var A=function(e){var t,r,n,i,o,a,s,u,c,h,d,l,p,b,m,v,y,g,w,_,k,A,S,E,M,x,I,P,N,O,R,U,C,B,T,j,L,F,D,z,q,H,K,V,G,W,$,Y,Z,J,X,Q,ee,te,re,ne,ie,oe,ae,se,fe,ue,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],h=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(l=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(u<<1|c>>>31),r=o^(c<<1|u>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(h<<1|d>>>31),r=s^(d<<1|h>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=u^(l<<1|p>>>31),r=c^(p<<1|l>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],m=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,fe=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,T=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,g=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,U=e[45]<<29|e[44]>>>3,C=e[44]<<29|e[45]>>>3,E=e[6]<<28|e[7]>>>4,M=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,F=e[26]<<25|e[27]>>>7,D=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,k=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,x=e[18]<<20|e[19]>>>12,I=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=b^~v&g,e[1]=m^~y&w,e[10]=E^~x&P,e[11]=M^~I&N,e[20]=B^~j&F,e[21]=T^~L&D,e[30]=V^~W&Y,e[31]=G^~$&Z,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=x^~P&O,e[13]=I^~N&R,e[22]=j^~F&z,e[23]=L^~D&q,e[32]=W^~Y&J,e[33]=$^~Z&X,e[42]=ne^~oe&se,e[43]=ie^~ae&fe,e[4]=g^~_&A,e[5]=w^~k&S,e[14]=P^~O&U,e[15]=N^~R&C,e[24]=F^~z&H,e[25]=D^~q&K,e[34]=Y^~J&Q,e[35]=Z^~X&ee,e[44]=oe^~se&ue,e[45]=ae^~fe&ce,e[6]=_^~A&b,e[7]=k^~S&m,e[16]=O^~U&E,e[17]=R^~C&M,e[26]=z^~H&B,e[27]=q^~K&T,e[36]=J^~Q&V,e[37]=X^~ee&G,e[46]=se^~ue&te,e[47]=fe^~ce&re,e[8]=A^~b&v,e[9]=S^~m&y,e[18]=U^~E&x,e[19]=C^~M&I,e[28]=H^~B&j,e[29]=K^~T&L,e[38]=Q^~V&W,e[39]=ee^~G&$,e[48]=ue^~te&ne,e[49]=ce^~re&ie,e[0]^=f[n],e[1]^=f[n+1]};if(o)n.exports=b;else for(v=0;v=0&&(a=t,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a:a,b:s}]},f.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),f=i.mul(r.b),u=o.mul(n.b);return{k1:e.sub(a).sub(s),k2:f.add(u).neg()}},f.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},f.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},f.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},u.prototype.isInfinity=function(){return this.inf},u.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},u.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},u.prototype.getX=function(){return this.x.fromRed()},u.prototype.getY=function(){return this.y.fromRed()},u.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},u.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},u.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},u.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},u.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},u.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(c,a.BasePoint),f.prototype.jpoint=function(e,t,r){return new c(this,e,t,r)},c.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},c.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},c.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(i),f=o.redSub(a);if(0===s.cmpn(0))return 0!==f.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),c=u.redMul(s),h=n.redMul(u),d=f.redSqr().redIAdd(c).redISub(h).redISub(h),l=f.redMul(h.redISub(d)).redISub(o.redMul(c)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(d,l,p)},c.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=a.redSqr(),u=f.redMul(a),c=r.redMul(f),h=s.redSqr().redIAdd(u).redISub(c).redISub(c),d=s.redMul(c.redISub(h)).redISub(i.redMul(u)),l=this.z.redMul(a);return this.curve.jpoint(h,d,l)},c.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(4),i=r(3),o=r(63),a=r(21);function s(e){o.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function f(e,t,r){o.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,o),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(f,o.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new f(this,e,t)},s.prototype.pointFromJSON=function(e){return f.fromJSON(this,e)},f.prototype.precompute=function(){},f.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},f.fromJSON=function(e,t){return new f(e,t[0],t[1]||e.one)},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},f.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},f.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(r),a=i.redMul(n),s=t.z.redMul(o.redAdd(a).redSqr()),f=t.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,f)},f.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},f.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},f.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(21),i=r(4),o=r(3),a=r(63),s=n.assert;function f(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,a.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function u(e,t,r,n,o){a.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(f,a),e.exports=f,f.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},f.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},f.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},f.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var f=s.fromRed().isOdd();return(t&&!f||!t&&f)&&(s=s.redNeg()),this.point(e,s)},f.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},f.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},o(u,a.BasePoint),f.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},f.prototype.point=function(e,t,r,n){return new u(this,e,t,r,n)},u.fromJSON=function(e,t){return new u(e,t[0],t[1],t[2])},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},u.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=n.redAdd(t),a=o.redSub(r),s=n.redSub(t),f=i.redMul(a),u=o.redMul(s),c=i.redMul(s),h=a.redMul(o);return this.curve.point(f,u,h,c)},u.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=(u=this.curve._mulA(i)).redAdd(o);if(this.zOne)e=n.redSub(i).redSub(o).redMul(a.redSub(this.curve.two)),t=a.redMul(u.redSub(o)),r=a.redSqr().redSub(a).redSub(a);else{var s=this.z.redSqr(),f=a.redSub(s).redISub(s);e=n.redSub(i).redISub(o).redMul(f),t=a.redMul(u.redSub(o)),r=a.redMul(f)}}else{var u=i.redAdd(o);s=this.curve._mulC(this.z).redSqr(),f=u.redSub(s).redSub(s);e=this.curve._mulC(n.redISub(u)).redMul(f),t=this.curve._mulC(u).redMul(i.redISub(o)),r=u.redMul(f)}return this.curve.point(e,t,r)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},u.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),o=r.redSub(t),a=i.redSub(n),s=i.redAdd(n),f=r.redAdd(t),u=o.redMul(a),c=s.redMul(f),h=o.redMul(f),d=a.redMul(s);return this.curve.point(u,c,d,h)},u.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),o=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(o).redMul(a),f=i.redSub(s),u=i.redAdd(s),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(a),h=n.redMul(f).redMul(c);return this.curve.twisted?(t=n.redMul(u).redMul(a.redSub(this.curve._mulA(o))),r=f.redMul(u)):(t=n.redMul(u).redMul(a.redSub(o)),r=this.curve._mulC(f).redMul(u)),this.curve.point(h,t,r)},u.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},u.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},u.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},u.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},u.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},u.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()},u.prototype.getY=function(){return this.normalize(),this.y.fromRed()},u.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},u.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},u.prototype.toP=u.prototype.normalize,u.prototype.mixedAdd=u.prototype.add},function(e,t,r){"use strict";t.sha1=r(286),t.sha224=r(287),t.sha256=r(131),t.sha384=r(288),t.sha512=r(132)},function(e,t,r){"use strict";var n=r(27),i=r(47),o=r(130),a=n.rotl32,s=n.sum32,f=n.sum32_5,u=o.ft_1,c=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(d,c),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;nthis.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t0))return a.iaddn(1),this.keyFromPrivate(a)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,a){"object"===(0,n.default)(r)&&(a=r,r=null),a||(a={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new i(e,16));for(var s=this.n.byteLength(),f=t.getPrivate().toArray("be",s),u=e.toArray("be",s),c=new o({hash:this.hash,entropy:f,nonce:u,pers:a.pers,persEnc:a.persEnc||"utf8"}),d=this.n.sub(new i(1)),l=0;;l++){var p=a.k?a.k(l):new i(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var b=this.g.mul(p);if(!b.isInfinity()){var m=b.getX(),v=m.umod(this.n);if(0!==v.cmpn(0)){var y=p.invm(this.n).mul(v.mul(t.getPrivate()).iadd(e));if(0!==(y=y.umod(this.n)).cmpn(0)){var g=(b.getY().isOdd()?1:0)|(0!==m.cmp(v)?2:0);return a.canonical&&y.cmp(this.nh)>0&&(y=this.n.sub(y),g^=1),new h({r:v,s:y,recoveryParam:g})}}}}}},d.prototype.verify=function(e,t,r,n){e=this._truncateToN(new i(e,16)),r=this.keyFromPublic(r,n);var o=(t=new h(t,"hex")).r,a=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,f=a.invm(this.n),u=f.mul(e).umod(this.n),c=f.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(u,r.getPublic(),c)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(u,r.getPublic(),c)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},d.prototype.recoverPubKey=function(e,t,r,n){u((3&r)===r,"The recovery param is more than two bits"),t=new h(t,n);var o=this.n,a=new i(e),s=t.r,f=t.s,c=1&r,d=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");s=d?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var l=t.r.invm(o),p=o.sub(a).mul(l).umod(o),b=f.mul(l).umod(o);return this.g.mulAdd(p,s,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new h(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(4),i=r(21).assert;function o(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=o,o.fromPublic=function(e,t,r){return t instanceof o?t:new o(e,{pub:t,pubEnc:r})},o.fromPrivate=function(e,t,r){return t instanceof o?t:new o(e,{priv:t,privEnc:r})},o.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},o.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},o.prototype.derive=function(e){return e.mul(this.priv).getX()},o.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},o.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},o.prototype.inspect=function(){return""}},function(e,t,r){"use strict";var n=r(4),i=r(21),o=i.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function f(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=t.place;o>>=0;return!(i<=127)&&(t.place=a,i)}function u(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=a,a.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new s;if(48!==e[r.place++])return!1;var o=f(e,r);if(!1===o)return!1;if(o+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var a=f(e,r);if(!1===a)return!1;var u=e.slice(r.place,a+r.place);if(r.place+=a,2!==e[r.place++])return!1;var c=f(e,r);if(!1===c)return!1;if(e.length!==c+r.place)return!1;var h=e.slice(r.place,c+r.place);if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new n(u),this.s=new n(h),this.recoveryParam=null,!0},a.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=u(t),r=u(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];c(n,t.length),(n=n.concat(t)).push(2),c(n,r.length);var o=n.concat(r),a=[48];return c(a,o.length),a=a.concat(o),i.encode(a,e)}},function(e,t,r){"use strict";var n=r(46),i=r(86),o=r(21),a=o.assert,s=o.parseBytes,f=r(296),u=r(297);function c(e){if(a("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof c))return new c(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=c,c.prototype.sign=function(e,t){e=s(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),o=this.encodePoint(i),a=this.hashInt(o,r.pubBytes(),e).mul(r.priv()),f=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:f,Rencoded:o})},c.prototype.verify=function(e,t,r){e=s(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(o)},c.prototype.hashInt=function(){for(var e=this.hash(),t=0;te.highestBlock-200&&(t._isSyncing=!1,t.emit("changed",t._isSyncing),n.isFunction(t.callback)&&t.callback(null,t._isSyncing,t))}),500))}}}})];C.forEach((function(t){t.attachToObject(e),t.setRequestManager(e._requestManager,e.accounts),t.defaultBlock=e.defaultBlock,t.defaultAccount=e.defaultAccount,t.transactionBlockTimeout=e.transactionBlockTimeout,t.transactionConfirmationBlocks=e.transactionConfirmationBlocks,t.transactionPollingTimeout=e.transactionPollingTimeout,t.handleRevert=e.handleRevert}))};i.addProviders(A),e.exports=A},function(e,t,r){"use strict";var n=r(302);e.exports=n},function(e,t,r){"use strict";var n=r(0),i=n(r(44)),o=n(r(83)),a=r(11),s=r(134),f=r(10).formatters,u=r(17),c=r(303),h=r(342),d=r(343);function l(e){this.eth=e;var t=null;this._detectedAddress=null,this._lastSyncCheck=null,Object.defineProperty(this,"registry",{get:function(){return new c(this)},enumerable:!0}),Object.defineProperty(this,"resolverMethodHandler",{get:function(){return new h(this.registry)},enumerable:!0}),Object.defineProperty(this,"registryAddress",{get:function(){return t},set:function(e){t=null!==e?f.inputAddressFormatter(e):e},enumerable:!0})}l.prototype.supportsInterface=function(e,t,r){return this.getResolver(e).then((function(e){return u.isHexStrict(t)||(t=u.sha3(t).slice(0,10)),e.methods.supportsInterface(t).call(r)})).catch((function(e){if(!a.isFunction(r))throw e;r(e,null)}))},l.prototype.resolver=function(e,t){return this.registry.resolver(e,t)},l.prototype.getResolver=function(e,t){return this.registry.getResolver(e,t)},l.prototype.setResolver=function(e,t,r,n){return this.registry.setResolver(e,t,r,n)},l.prototype.setRecord=function(e,t,r,n,i,o){return this.registry.setRecord(e,t,r,n,i,o)},l.prototype.setSubnodeRecord=function(e,t,r,n,i,o,a){return this.registry.setSubnodeRecord(e,t,r,n,i,o,a)},l.prototype.setApprovalForAll=function(e,t,r,n){return this.registry.setApprovalForAll(e,t,r,n)},l.prototype.isApprovedForAll=function(e,t,r){return this.registry.isApprovedForAll(e,t,r)},l.prototype.recordExists=function(e,t){return this.registry.recordExists(e,t)},l.prototype.setSubnodeOwner=function(e,t,r,n,i){return this.registry.setSubnodeOwner(e,t,r,n,i)},l.prototype.getTTL=function(e,t){return this.registry.getTTL(e,t)},l.prototype.setTTL=function(e,t,r,n){return this.registry.setTTL(e,t,r,n)},l.prototype.getOwner=function(e,t){return this.registry.getOwner(e,t)},l.prototype.setOwner=function(e,t,r,n){return this.registry.setOwner(e,t,r,n)},l.prototype.getAddress=function(e,t){return this.resolverMethodHandler.method(e,"addr",[]).call(t)},l.prototype.setAddress=function(e,t,r,n){return this.resolverMethodHandler.method(e,"setAddr",[t]).send(r,n)},l.prototype.getPubkey=function(e,t){return this.resolverMethodHandler.method(e,"pubkey",[],null,t).call(t)},l.prototype.setPubkey=function(e,t,r,n,i){return this.resolverMethodHandler.method(e,"setPubkey",[t,r]).send(n,i)},l.prototype.getContent=function(e,t){return this.resolverMethodHandler.method(e,"content",[]).call(t)},l.prototype.setContent=function(e,t,r,n){return this.resolverMethodHandler.method(e,"setContent",[t]).send(r,n)},l.prototype.getContenthash=function(e,t){return this.resolverMethodHandler.method(e,"contenthash",[],d.decode).call(t)},l.prototype.setContenthash=function(e,t,r,n){var i;try{i=d.encode(t)}catch(e){var o=new Error("Could not encode "+t+". See docs for supported hash protocols.");if(a.isFunction(n))return void n(o,null);throw o}return this.resolverMethodHandler.method(e,"setContenthash",[i]).send(r,n)},l.prototype.getMultihash=function(e,t){return this.resolverMethodHandler.method(e,"multihash",[]).call(t)},l.prototype.setMultihash=function(e,t,r,n){return this.resolverMethodHandler.method(e,"multihash",[t]).send(r,n)},l.prototype.checkNetwork=(0,o.default)(i.default.mark((function e(){var t,r,n,o,a;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=new Date/1e3,this._lastSyncCheck&&!(t-this._lastSyncCheck>3600)){e.next=9;break}return e.next=4,this.eth.getBlock("latest");case 4:if(r=e.sent,!((n=t-r.timestamp)>3600)){e.next=8;break}throw new Error("Network not synced; last block was "+n+" seconds ago");case 8:this._lastSyncCheck=t;case 9:if(!this.registryAddress){e.next=11;break}return e.abrupt("return",this.registryAddress);case 11:if(this._detectedAddress){e.next=20;break}return e.next=14,this.eth.net.getNetworkType();case 14:if(o=e.sent,void 0!==(a=s.addresses[o])){e.next=18;break}throw new Error("ENS is not supported on network "+o);case 18:return this._detectedAddress=a,e.abrupt("return",this._detectedAddress);case 20:return e.abrupt("return",this._detectedAddress);case 21:case"end":return e.stop()}}),e,this)}))),e.exports=l},function(e,t,r){"use strict";var n=r(11),i=r(135),o=r(153),a=r(61),s=r(10).formatters,f=r(17),u=r(340),c=r(341);function h(e){var t=this;this.ens=e,this.contract=e.checkNetwork().then((function(e){var r=new i(u,e);return r.setProvider(t.ens.eth.currentProvider),r}))}h.prototype.owner=function(e,t){return console.warn('Deprecated: Please use the "getOwner" method instead of "owner".'),this.getOwner(e,t)},h.prototype.getOwner=function(e,t){var r=new a(!0);return this.contract.then((function(t){return t.methods.owner(o.hash(e)).call()})).then((function(e){n.isFunction(t)?t(e,e):r.resolve(e)})).catch((function(e){n.isFunction(t)?t(e,null):r.reject(e)})),r.eventEmitter},h.prototype.setOwner=function(e,t,r,i){var f=new a(!0);return this.contract.then((function(n){return n.methods.setOwner(o.hash(e),s.inputAddressFormatter(t)).send(r)})).then((function(e){n.isFunction(i)?i(e,e):f.resolve(e)})).catch((function(e){n.isFunction(i)?i(e,null):f.reject(e)})),f.eventEmitter},h.prototype.getTTL=function(e,t){var r=new a(!0);return this.contract.then((function(t){return t.methods.ttl(o.hash(e)).call()})).then((function(e){n.isFunction(t)?t(e,e):r.resolve(e)})).catch((function(e){n.isFunction(t)?t(e,null):r.reject(e)})),r.eventEmitter},h.prototype.setTTL=function(e,t,r,i){var s=new a(!0);return this.contract.then((function(n){return n.methods.setTTL(o.hash(e),t).send(r)})).then((function(e){n.isFunction(i)?i(e,e):s.resolve(e)})).catch((function(e){n.isFunction(i)?i(e,null):s.reject(e)})),s.eventEmitter},h.prototype.setSubnodeOwner=function(e,t,r,i,u){var c=new a(!0);return f.isHexStrict(t)||(t=f.sha3(t)),this.contract.then((function(n){return n.methods.setSubnodeOwner(o.hash(e),t,s.inputAddressFormatter(r)).send(i)})).then((function(e){n.isFunction(u)?u(e,e):c.resolve(e)})).catch((function(e){n.isFunction(u)?u(e,null):c.reject(e)})),c.eventEmitter},h.prototype.setRecord=function(e,t,r,i,f,u){var c=new a(!0);return this.contract.then((function(n){return n.methods.setRecord(o.hash(e),s.inputAddressFormatter(t),s.inputAddressFormatter(r),i).send(f)})).then((function(e){n.isFunction(u)?u(e,e):c.resolve(e)})).catch((function(e){n.isFunction(u)?u(e,null):c.reject(e)})),c.eventEmitter},h.prototype.setSubnodeRecord=function(e,t,r,i,u,c,h){var d=new a(!0);return f.isHexStrict(t)||(t=f.sha3(t)),this.contract.then((function(n){return n.methods.setSubnodeRecord(o.hash(e),t,s.inputAddressFormatter(r),s.inputAddressFormatter(i),u).send(c)})).then((function(e){n.isFunction(h)?h(e,e):d.resolve(e)})).catch((function(e){n.isFunction(h)?h(e,null):d.reject(e)})),d.eventEmitter},h.prototype.setApprovalForAll=function(e,t,r,i){var o=new a(!0);return this.contract.then((function(n){return n.methods.setApprovalForAll(s.inputAddressFormatter(e),t).send(r)})).then((function(e){n.isFunction(i)?i(e,e):o.resolve(e)})).catch((function(e){n.isFunction(i)?i(e,null):o.reject(e)})),o.eventEmitter},h.prototype.isApprovedForAll=function(e,t,r){var i=new a(!0);return this.contract.then((function(r){return r.methods.isApprovedForAll(s.inputAddressFormatter(e),s.inputAddressFormatter(t)).call()})).then((function(e){n.isFunction(r)?r(e,e):i.resolve(e)})).catch((function(e){n.isFunction(r)?r(e,null):i.reject(e)})),i.eventEmitter},h.prototype.recordExists=function(e,t){var r=new a(!0);return this.contract.then((function(t){return t.methods.recordExists(o.hash(e)).call()})).then((function(e){n.isFunction(t)?t(e,e):r.resolve(e)})).catch((function(e){n.isFunction(t)?t(e,null):r.reject(e)})),r.eventEmitter},h.prototype.resolver=function(e,t){return console.warn('Deprecated: Please use the "getResolver" method instead of "resolver".'),this.getResolver(e,t)},h.prototype.getResolver=function(e,t){var r=this;return this.contract.then((function(t){return t.methods.resolver(o.hash(e)).call()})).then((function(e){var o=new i(c,e);if(o.setProvider(r.ens.eth.currentProvider),!n.isFunction(t))return o;t(o,o)})).catch((function(e){if(!n.isFunction(t))throw e;t(e,null)}))},h.prototype.setResolver=function(e,t,r,i){var f=new a(!0);return this.contract.then((function(n){return n.methods.setResolver(o.hash(e),s.inputAddressFormatter(t)).send(r)})).then((function(e){n.isFunction(i)?i(e,e):f.resolve(e)})).catch((function(e){n.isFunction(i)?i(e,null):f.reject(e)})),f.eventEmitter},e.exports=h},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="logger/5.0.6"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="bytes/5.0.5"},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.formatFixed=y,t.parseFixed=g,t.FixedNumber=t.FixedFormat=void 0;var i=n(r(1)),o=n(r(6)),a=n(r(7)),s=r(24),f=r(25),u=r(141),c=r(140),h=new f.Logger(u.version),d={},l=c.BigNumber.from(0),p=c.BigNumber.from(-1);function b(e,t,r,n){var i={fault:t,operation:r};return void 0!==n&&(i.value=n),h.throwError(e,f.Logger.errors.NUMERIC_FAULT,i)}for(var m="0";m.length<256;)m+=m;function v(e){if("number"!=typeof e)try{e=c.BigNumber.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+m.substring(0,e):h.throwArgumentError("invalid decimal size","decimals",e)}function y(e,t){null==t&&(t=0);var r=v(t),n=(e=c.BigNumber.from(e)).lt(l);n&&(e=e.mul(p));for(var i=e.mod(r).toString();i.length2&&h.throwArgumentError("too many decimal points","value",e);var o=i[0],a=i[1];for(o||(o="0"),a||(a="0"),a.length>r.length-1&&b("fractional component exceeds decimals","underflow","parseFixed");a.length80&&h.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",o),new e(d,r,n,o)}}]),e}();t.FixedFormat=w;var _=function(){function e(t,r,n,i){(0,o.default)(this,e),h.checkNew(this instanceof e?this.constructor:void 0,e),t!==d&&h.throwError("cannot use FixedNumber constructor; use FixedNumber.from",f.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=i,this._hex=r,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}return(0,a.default)(e,[{key:"_checkFormat",value:function(e){this.format.name!==e.format.name&&h.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}},{key:"addUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.add(n),this.format.decimals,this.format)}},{key:"subUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.sub(n),this.format.decimals,this.format)}},{key:"mulUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}},{key:"divUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}},{key:"floor",value:function(){var t=this.toString().split("."),r=e.from(t[0],this.format),n=!t[1].match(/^(0*)$/);return this.isNegative()&&n&&(r=r.subUnsafe(k)),r}},{key:"ceiling",value:function(){var t=this.toString().split("."),r=e.from(t[0],this.format),n=!t[1].match(/^(0*)$/);return!this.isNegative()&&n&&(r=r.addUnsafe(k)),r}},{key:"round",value:function(t){null==t&&(t=0);var r=this.toString().split(".");if((t<0||t>80||t%1)&&h.throwArgumentError("invalid decimal count","decimals",t),r[1].length<=t)return this;var n=e.from("1"+m.substring(0,t));return this.mulUnsafe(n).addUnsafe(A).floor().divUnsafe(n)}},{key:"isZero",value:function(){return"0.0"===this._value}},{key:"isNegative",value:function(){return"-"===this._value[0]}},{key:"toString",value:function(){return this._value}},{key:"toHexString",value:function(e){if(null==e)return this._hex;e%8&&h.throwArgumentError("invalid byte width","width",e);var t=c.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString();return(0,s.hexZeroPad)(t,e/8)}},{key:"toUnsafeFloat",value:function(){return parseFloat(this.toString())}},{key:"toFormat",value:function(t){return e.fromString(this._value,t)}}],[{key:"fromValue",value:function(t,r,n){return null!=n||null==r||(0,c.isBigNumberish)(r)||(n=r,r=null),null==r&&(r=0),null==n&&(n="fixed"),e.fromString(y(t,r),w.from(n))}},{key:"fromString",value:function(t,r){null==r&&(r="fixed");var n=w.from(r),i=g(t,n.decimals);!n.signed&&i.lt(l)&&b("unsigned value cannot be negative","overflow","value",t);var o=null;n.signed?o=i.toTwos(n.width).toHexString():(o=i.toHexString(),o=(0,s.hexZeroPad)(o,n.width/8));var a=y(i,n.decimals);return new e(d,o,a,n)}},{key:"fromBytes",value:function(t,r){null==r&&(r="fixed");var n=w.from(r);if((0,s.arrayify)(t).length>n.width/8)throw new Error("overflow");var i=c.BigNumber.from(t);n.signed&&(i=i.fromTwos(n.width));var o=i.toTwos((n.signed?0:1)+n.width).toHexString(),a=y(i,n.decimals);return new e(d,o,a,n)}},{key:"from",value:function(t,r){if("string"==typeof t)return e.fromString(t,r);if((0,s.isBytes)(t))return e.fromBytes(t,r);try{return e.fromValue(t,0,r)}catch(e){if(e.code!==f.Logger.errors.INVALID_ARGUMENT)throw e}return h.throwArgumentError("invalid FixedNumber value","value",t)}},{key:"isFixedNumber",value:function(e){return!(!e||!e._isFixedNumber)}}]),e}();t.FixedNumber=_;var k=_.from(1),A=_.from("0.5")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="properties/5.0.4"},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.AddressCoder=void 0;var i=n(r(6)),o=n(r(7)),a=n(r(19)),s=n(r(20)),f=n(r(15)),u=r(143),c=r(24);function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,f.default)(e);if(t){var i=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var d=function(e){(0,a.default)(r,e);var t=h(r);function r(e){return(0,i.default)(this,r),t.call(this,"address","address",e,!1)}return(0,o.default)(r,[{key:"encode",value:function(e,t){try{(0,u.getAddress)(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}},{key:"decode",value:function(e){return(0,u.getAddress)((0,c.hexZeroPad)(e.readValue().toHexString(),20))}}]),r}(r(26).Coder);t.AddressCoder=d},function(e,t,r){"use strict";(function(e,t,n){var i=r(0)(r(1)); +!function(){var r="object"===("undefined"==typeof window?"undefined":(0,i.default)(window))?window:{};!r.JS_SHA3_NO_NODE_JS&&"object"===(void 0===t?"undefined":(0,i.default)(t))&&t.versions&&t.versions.node&&(r=e);for(var o=!r.JS_SHA3_NO_COMMON_JS&&"object"===(0,i.default)(n)&&n.exports,a="0123456789abcdef".split(""),s=[0,8,16,24],u=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],f=[224,256,384,512],c=["hex","buffer","arrayBuffer","array"],h=function(t,e,r){return function(n){return new k(t,e,t).update(n)[r]()}},d=function(t,e,r){return function(n,i){return new k(t,e,i).update(n)[r]()}},l=function(t,e){var r=h(t,e,"hex");r.create=function(){return new k(t,e,t)},r.update=function(t){return r.create().update(t)};for(var n=0;n>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}k.prototype.update=function(t){var e="string"!=typeof t;e&&t.constructor===ArrayBuffer&&(t=new Uint8Array(t));for(var r,n,i=t.length,o=this.blocks,a=this.byteCount,u=this.blockCount,f=0,c=this.s;f>2]|=t[f]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(o[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=a){for(this.start=r-a,this.block=o[u],r=0;r>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e>4&15]+a[15&t]+a[t>>12&15]+a[t>>8&15]+a[t>>20&15]+a[t>>16&15]+a[t>>28&15]+a[t>>24&15];s%e==0&&(A(r),o=0)}return i&&(t=r[o],i>0&&(u+=a[t>>4&15]+a[15&t]),i>1&&(u+=a[t>>12&15]+a[t>>8&15]),i>2&&(u+=a[t>>20&15]+a[t>>16&15])),u},k.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(t);a>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;s%r==0&&A(n)}return o&&(t=s<<2,e=n[a],o>0&&(u[t]=255&e),o>1&&(u[t+1]=e>>8&255),o>2&&(u[t+2]=e>>16&255)),u};var A=function(t){var e,r,n,i,o,a,s,f,c,h,d,l,p,b,m,y,v,g,w,_,k,A,S,M,E,x,I,O,P,C,B,T,R,U,N,j,L,F,D,q,z,H,K,V,G,W,Y,$,J,Z,X,Q,tt,et,rt,nt,it,ot,at,st,ut,ft,ct;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],a=t[2]^t[12]^t[22]^t[32]^t[42],s=t[3]^t[13]^t[23]^t[33]^t[43],f=t[4]^t[14]^t[24]^t[34]^t[44],c=t[5]^t[15]^t[25]^t[35]^t[45],h=t[6]^t[16]^t[26]^t[36]^t[46],d=t[7]^t[17]^t[27]^t[37]^t[47],e=(l=t[8]^t[18]^t[28]^t[38]^t[48])^(a<<1|s>>>31),r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(s<<1|a>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(f<<1|c>>>31),r=o^(c<<1|f>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=a^(h<<1|d>>>31),r=s^(d<<1|h>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=f^(l<<1|p>>>31),r=c^(p<<1|l>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,b=t[0],m=t[1],W=t[11]<<4|t[10]>>>28,Y=t[10]<<4|t[11]>>>28,O=t[20]<<3|t[21]>>>29,P=t[21]<<3|t[20]>>>29,st=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,U=t[2]<<1|t[3]>>>31,N=t[3]<<1|t[2]>>>31,y=t[13]<<12|t[12]>>>20,v=t[12]<<12|t[13]>>>20,$=t[22]<<10|t[23]>>>22,J=t[23]<<10|t[22]>>>22,C=t[33]<<13|t[32]>>>19,B=t[32]<<13|t[33]>>>19,ft=t[42]<<2|t[43]>>>30,ct=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,j=t[14]<<6|t[15]>>>26,L=t[15]<<6|t[14]>>>26,g=t[25]<<11|t[24]>>>21,w=t[24]<<11|t[25]>>>21,Z=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,T=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,M=t[6]<<28|t[7]>>>4,E=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,F=t[26]<<25|t[27]>>>7,D=t[27]<<25|t[26]>>>7,_=t[36]<<21|t[37]>>>11,k=t[37]<<21|t[36]>>>11,Q=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,V=t[8]<<27|t[9]>>>5,G=t[9]<<27|t[8]>>>5,x=t[18]<<20|t[19]>>>12,I=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,at=t[28]<<7|t[29]>>>25,q=t[38]<<8|t[39]>>>24,z=t[39]<<8|t[38]>>>24,A=t[48]<<14|t[49]>>>18,S=t[49]<<14|t[48]>>>18,t[0]=b^~y&g,t[1]=m^~v&w,t[10]=M^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&$,t[31]=G^~Y&J,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=y^~g&_,t[3]=v^~w&k,t[12]=x^~O&C,t[13]=I^~P&B,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~$&Z,t[33]=Y^~J&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&S,t[14]=O^~C&T,t[15]=P^~B&R,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=$^~Z&Q,t[35]=J^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&b,t[7]=k^~S&m,t[16]=C^~T&M,t[17]=B^~R&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=Z^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~b&y,t[9]=S^~m&v,t[18]=T^~M&x,t[19]=R^~E&I,t[28]=H^~U&j,t[29]=K^~N&L,t[38]=Q^~V&W,t[39]=tt^~G&Y,t[48]=ft^~et&nt,t[49]=ct^~rt&it,t[0]^=u[n],t[1]^=u[n+1]};if(o)n.exports=b;else for(y=0;y>8,a=255&i;o?r.push(o,a):r.push(a)}return r},r.zero2=n,r.toHex=i,r.encode=function(t,e){return"hex"===e?i(t):t}})),h=s((function(t,e){var r=e;r.assert=u,r.toArray=c.toArray,r.zero2=c.zero2,r.toHex=c.toHex,r.encode=c.encode,r.getNAF=function(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1);n.fill(0);for(var i=1<(i>>1)-1?(i>>1)-u:u,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},r.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n=0,i=0;t.cmpn(-n)>0||e.cmpn(-i)>0;){var o,a,s,u=t.andln(3)+n&3,f=e.andln(3)+i&3;if(3===u&&(u=-1),3===f&&(f=-1),0==(1&u))o=0;else o=3!==(s=t.andln(7)+n&7)&&5!==s||2!==f?u:-u;if(r[0].push(o),0==(1&f))a=0;else a=3!==(s=e.andln(7)+i&7)&&5!==s||2!==u?f:-f;r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r},r.cachedProperty=function(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(t){return"string"==typeof t?r.toArray(t,"hex"):t},r.intFromLE=function(t){return new o.default(t,"hex","le")}})),d=h.getNAF,l=h.getJSF,p=h.assert;function b(t,e){this.type=t,this.p=new o.default(e.p,16),this.red=e.prime?o.default.red(e.prime):o.default.mont(this.p),this.zero=new o.default(0).toRed(this.red),this.one=new o.default(1).toRed(this.red),this.two=new o.default(2).toRed(this.red),this.n=e.n&&new o.default(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var m=b;function y(t,e){this.curve=t,this.type=e,this.precomputed=null}b.prototype.point=function(){throw new Error("Not implemented")},b.prototype.validate=function(){throw new Error("Not implemented")},b.prototype._fixedNafMul=function(t,e){p(t.precomputed);var r=t._getDoubles(),n=d(e,1,this._bitLength),i=(1<=a;e--)s=(s<<1)+n[e];o.push(s)}for(var u=this.jpoint(null,null,null),f=this.jpoint(null,null,null),c=i;c>0;c--){for(a=0;a=0;s--){for(e=0;s>=0&&0===o[s];s--)e++;if(s>=0&&e++,a=a.dblp(e),s<0)break;var u=o[s];p(0!==u),a="affine"===t.type?u>0?a.mixedAdd(i[u-1>>1]):a.mixedAdd(i[-u-1>>1].neg()):u>0?a.add(i[u-1>>1]):a.add(i[-u-1>>1].neg())}return"affine"===t.type?a.toP():a},b.prototype._wnafMulAdd=function(t,e,r,n,i){for(var o=this._wnafT1,a=this._wnafT2,s=this._wnafT3,u=0,f=0;f=1;f-=2){var h=f-1,p=f;if(1===o[h]&&1===o[p]){var b=[e[h],null,null,e[p]];0===e[h].y.cmp(e[p].y)?(b[1]=e[h].add(e[p]),b[2]=e[h].toJ().mixedAdd(e[p].neg())):0===e[h].y.cmp(e[p].y.redNeg())?(b[1]=e[h].toJ().mixedAdd(e[p]),b[2]=e[h].add(e[p].neg())):(b[1]=e[h].toJ().mixedAdd(e[p]),b[2]=e[h].toJ().mixedAdd(e[p].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],y=l(r[h],r[p]);u=Math.max(y[0].length,u),s[h]=new Array(u),s[p]=new Array(u);for(var v=0;v=0;f--){for(var A=0;f>=0;){var S=!0;for(v=0;v=0&&A++,_=_.dblp(A),f<0)break;for(v=0;v0?M=a[v][E-1>>1]:E<0&&(M=a[v][-E-1>>1].neg()),_="affine"===M.type?_.mixedAdd(M):_.add(M))}}for(f=0;f=Math.ceil((t.bitLength()+1)/e.step)},y.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i=0&&(a=e,s=r),n.negative&&(n=n.neg(),i=i.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:i},{a:a,b:s}]},w.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),u=i.mul(r.b),f=o.mul(n.b);return{k1:t.sub(a).sub(s),k2:u.add(f).neg()}},w.prototype.pointFromX=function(t,e){(t=new o.default(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var i=n.fromRed().isOdd();return(e&&!i||!e&&i)&&(n=n.redNeg()),this.point(t,n)},w.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},w.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},k.prototype.isInfinity=function(){return this.inf},k.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},k.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},k.prototype.getX=function(){return this.x.fromRed()},k.prototype.getY=function(){return this.y.fromRed()},k.prototype.mul=function(t){return t=new o.default(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},k.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},k.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},k.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},k.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},k.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},v(A,m.BasePoint),w.prototype.jpoint=function(t,e,r){return new A(this,t,e,r)},A.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},A.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},A.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(r.redMul(this.z)),s=n.redSub(i),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=s.redSqr(),c=f.redMul(s),h=n.redMul(f),d=u.redSqr().redIAdd(c).redISub(h).redISub(h),l=u.redMul(h.redISub(d)).redISub(o.redMul(c)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(d,l,p)},A.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),f=u.redMul(a),c=r.redMul(u),h=s.redSqr().redIAdd(f).redISub(c).redISub(c),d=s.redMul(c.redISub(h)).redISub(i.redMul(f)),l=this.z.redMul(a);return this.curve.jpoint(h,d,l)},A.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},A.prototype.inspect=function(){return this.isInfinity()?"":""},A.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var S=s((function(t,e){var r=e;r.base=m,r.short=_,r.mont=null,r.edwards=null})),M=s((function(t,e){var r,n=e,i=h.assert;function o(t){"short"===t.type?this.curve=new S.short(t):"edwards"===t.type?this.curve=new S.edwards(t):this.curve=new S.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(t,e){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var r=new o(e);return Object.defineProperty(n,t,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=o,s("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:a.default.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),s("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:a.default.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),s("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:a.default.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),s("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:a.default.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),s("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:a.default.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),s("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.default.sha256,gRed:!1,g:["9"]}),s("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.default.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=null.crash()}catch(t){r=void 0}s("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:a.default.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})}));function E(t){if(!(this instanceof E))return new E(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=c.toArray(t.entropy,t.entropyEnc||"hex"),r=c.toArray(t.nonce,t.nonceEnc||"hex"),n=c.toArray(t.pers,t.persEnc||"hex");u(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}var x=E;E.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},E.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=c.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length"};var C=h.assert;function B(t,e){if(t instanceof B)return t;this._importDER(t,e)||(C(t.r&&t.s,"Signature without r or s"),this.r=new o.default(t.r,16),this.s=new o.default(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}var T=B;function R(){this.place=0}function U(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=e.place;o>>=0;return!(i<=127)&&(e.place=a,i)}function N(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}B.prototype._importDER=function(t,e){t=h.toArray(t,e);var r=new R;if(48!==t[r.place++])return!1;var n=U(t,r);if(!1===n)return!1;if(n+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var i=U(t,r);if(!1===i)return!1;var a=t.slice(r.place,i+r.place);if(r.place+=i,2!==t[r.place++])return!1;var s=U(t,r);if(!1===s)return!1;if(t.length!==s+r.place)return!1;var u=t.slice(r.place,s+r.place);if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}return this.r=new o.default(a),this.s=new o.default(u),this.recoveryParam=null,!0},B.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=N(e),r=N(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];j(n,e.length),(n=n.concat(e)).push(2),j(n,r.length);var i=n.concat(r),o=[48];return j(o,i.length),o=o.concat(i),h.encode(o,t)};var L=function(){throw new Error("unsupported")},F=h.assert;function D(t){if(!(this instanceof D))return new D(t);"string"==typeof t&&(F(M.hasOwnProperty(t),"Unknown curve "+t),t=M[t]),t instanceof M.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}var q=D;D.prototype.keyPair=function(t){return new P(this,t)},D.prototype.keyFromPrivate=function(t,e){return P.fromPrivate(this,t,e)},D.prototype.keyFromPublic=function(t,e){return P.fromPublic(this,t,e)},D.prototype.genKeyPair=function(t){t||(t={});for(var e=new x({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||L(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new o.default(2));;){var i=new o.default(e.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},D.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},D.prototype.sign=function(t,e,r,n){"object"===(0,i.default)(r)&&(n=r,r=null),n||(n={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new o.default(t,16));for(var a=this.n.byteLength(),s=e.getPrivate().toArray("be",a),u=t.toArray("be",a),f=new x({hash:this.hash,entropy:s,nonce:u,pers:n.pers,persEnc:n.persEnc||"utf8"}),c=this.n.sub(new o.default(1)),h=0;;h++){var d=n.k?n.k(h):new o.default(f.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(c)>=0)){var l=this.g.mul(d);if(!l.isInfinity()){var p=l.getX(),b=p.umod(this.n);if(0!==b.cmpn(0)){var m=d.invm(this.n).mul(b.mul(e.getPrivate()).iadd(t));if(0!==(m=m.umod(this.n)).cmpn(0)){var y=(l.getY().isOdd()?1:0)|(0!==p.cmp(b)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),y^=1),new T({r:b,s:m,recoveryParam:y})}}}}}},D.prototype.verify=function(t,e,r,n){t=this._truncateToN(new o.default(t,16)),r=this.keyFromPublic(r,n);var i=(e=new T(e,"hex")).r,a=e.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,u=a.invm(this.n),f=u.mul(t).umod(this.n),c=u.mul(i).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(f,r.getPublic(),c)).isInfinity()&&s.eqXToP(i):!(s=this.g.mulAdd(f,r.getPublic(),c)).isInfinity()&&0===s.getX().umod(this.n).cmp(i)},D.prototype.recoverPubKey=function(t,e,r,n){F((3&r)===r,"The recovery param is more than two bits"),e=new T(e,n);var i=this.n,a=new o.default(t),s=e.r,u=e.s,f=1&r,c=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");s=c?this.curve.pointFromX(s.add(this.curve.n),f):this.curve.pointFromX(s,f);var h=e.r.invm(i),d=i.sub(a).mul(h).umod(i),l=u.mul(h).umod(i);return this.g.mulAdd(d,s,l)},D.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new T(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")};var z=s((function(t,e){var r=e;r.version="6.5.3",r.utils=h,r.rand=function(){throw new Error("unsupported")},r.curve=S,r.curves=M,r.ec=q,r.eddsa=null})).ec;e.EC=z}).call(this,r(7))},function(t,e,r){"use strict";e.sha1=r(267),e.sha224=r(268),e.sha256=r(123),e.sha384=r(269),e.sha512=r(124)},function(t,e,r){"use strict";var n=r(26),i=r(42),o=r(122),a=n.rotl32,s=n.sum32,u=n.sum32_5,f=o.ft_1,c=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(d,c),t.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;nthis.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;et.highestBlock-200&&(e._isSyncing=!1,e.emit("changed",e._isSyncing),n.isFunction(e.callback)&&e.callback(null,e._isSyncing,e))}),500))}}}})];R.forEach((function(e){e.attachToObject(t),e.setRequestManager(t._requestManager,t.accounts),e.defaultBlock=t.defaultBlock,e.defaultAccount=t.defaultAccount,e.transactionBlockTimeout=t.transactionBlockTimeout,e.transactionConfirmationBlocks=t.transactionConfirmationBlocks,e.transactionPollingTimeout=t.transactionPollingTimeout,e.handleRevert=t.handleRevert}))};i.addProviders(A),t.exports=A},function(t,e,r){"use strict";var n=r(276);t.exports=n},function(t,e,r){"use strict";var n=r(0),i=n(r(56)),o=n(r(77)),a=r(10),s=r(125),u=r(9).formatters,f=r(18),c=r(277),h=r(298),d=r(299);function l(t){this.eth=t;var e=null;this._detectedAddress=null,this._lastSyncCheck=null,Object.defineProperty(this,"registry",{get:function(){return new c(this)},enumerable:!0}),Object.defineProperty(this,"resolverMethodHandler",{get:function(){return new h(this.registry)},enumerable:!0}),Object.defineProperty(this,"registryAddress",{get:function(){return e},set:function(t){e=null!==t?u.inputAddressFormatter(t):t},enumerable:!0})}l.prototype.supportsInterface=function(t,e,r){return this.getResolver(t).then((function(t){return f.isHexStrict(e)||(e=f.sha3(e).slice(0,10)),t.methods.supportsInterface(e).call(r)})).catch((function(t){if(!a.isFunction(r))throw t;r(t,null)}))},l.prototype.resolver=function(t,e){return this.registry.resolver(t,e)},l.prototype.getResolver=function(t,e){return this.registry.getResolver(t,e)},l.prototype.setResolver=function(t,e,r,n){return this.registry.setResolver(t,e,r,n)},l.prototype.setRecord=function(t,e,r,n,i,o){return this.registry.setRecord(t,e,r,n,i,o)},l.prototype.setSubnodeRecord=function(t,e,r,n,i,o,a){return this.registry.setSubnodeRecord(t,e,r,n,i,o,a)},l.prototype.setApprovalForAll=function(t,e,r,n){return this.registry.setApprovalForAll(t,e,r,n)},l.prototype.isApprovedForAll=function(t,e,r){return this.registry.isApprovedForAll(t,e,r)},l.prototype.recordExists=function(t,e){return this.registry.recordExists(t,e)},l.prototype.setSubnodeOwner=function(t,e,r,n,i){return this.registry.setSubnodeOwner(t,e,r,n,i)},l.prototype.getTTL=function(t,e){return this.registry.getTTL(t,e)},l.prototype.setTTL=function(t,e,r,n){return this.registry.setTTL(t,e,r,n)},l.prototype.getOwner=function(t,e){return this.registry.getOwner(t,e)},l.prototype.setOwner=function(t,e,r,n){return this.registry.setOwner(t,e,r,n)},l.prototype.getAddress=function(t,e){return this.resolverMethodHandler.method(t,"addr",[]).call(e)},l.prototype.setAddress=function(t,e,r,n){return this.resolverMethodHandler.method(t,"setAddr",[e]).send(r,n)},l.prototype.getPubkey=function(t,e){return this.resolverMethodHandler.method(t,"pubkey",[],null,e).call(e)},l.prototype.setPubkey=function(t,e,r,n,i){return this.resolverMethodHandler.method(t,"setPubkey",[e,r]).send(n,i)},l.prototype.getContent=function(t,e){return this.resolverMethodHandler.method(t,"content",[]).call(e)},l.prototype.setContent=function(t,e,r,n){return this.resolverMethodHandler.method(t,"setContent",[e]).send(r,n)},l.prototype.getContenthash=function(t,e){return this.resolverMethodHandler.method(t,"contenthash",[],d.decode).call(e)},l.prototype.setContenthash=function(t,e,r,n){var i;try{i=d.encode(e)}catch(t){var o=new Error("Could not encode "+e+". See docs for supported hash protocols.");if(a.isFunction(n))return void n(o,null);throw o}return this.resolverMethodHandler.method(t,"setContenthash",[i]).send(r,n)},l.prototype.getMultihash=function(t,e){return this.resolverMethodHandler.method(t,"multihash",[]).call(e)},l.prototype.setMultihash=function(t,e,r,n){return this.resolverMethodHandler.method(t,"multihash",[e]).send(r,n)},l.prototype.checkNetwork=(0,o.default)(i.default.mark((function t(){var e,r,n,o,a;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=new Date/1e3,this._lastSyncCheck&&!(e-this._lastSyncCheck>3600)){t.next=9;break}return t.next=4,this.eth.getBlock("latest");case 4:if(r=t.sent,!((n=e-r.timestamp)>3600)){t.next=8;break}throw new Error("Network not synced; last block was "+n+" seconds ago");case 8:this._lastSyncCheck=e;case 9:if(!this.registryAddress){t.next=11;break}return t.abrupt("return",this.registryAddress);case 11:if(this._detectedAddress){t.next=20;break}return t.next=14,this.eth.net.getNetworkType();case 14:if(o=t.sent,void 0!==(a=s.addresses[o])){t.next=18;break}throw new Error("ENS is not supported on network "+o);case 18:return this._detectedAddress=a,t.abrupt("return",this._detectedAddress);case 20:return t.abrupt("return",this._detectedAddress);case 21:case"end":return t.stop()}}),t,this)}))),t.exports=l},function(t,e,r){"use strict";var n=r(10),i=r(126),o=r(136),a=r(57),s=r(9).formatters,u=r(18),f=r(296),c=r(297);function h(t){var e=this;this.ens=t,this.contract=t.checkNetwork().then((function(t){var r=new i(f,t);return r.setProvider(e.ens.eth.currentProvider),r}))}h.prototype.owner=function(t,e){return console.warn('Deprecated: Please use the "getOwner" method instead of "owner".'),this.getOwner(t,e)},h.prototype.getOwner=function(t,e){var r=new a(!0);return this.contract.then((function(e){return e.methods.owner(o.hash(t)).call()})).then((function(t){n.isFunction(e)?e(t,t):r.resolve(t)})).catch((function(t){n.isFunction(e)?e(t,null):r.reject(t)})),r.eventEmitter},h.prototype.setOwner=function(t,e,r,i){var u=new a(!0);return this.contract.then((function(n){return n.methods.setOwner(o.hash(t),s.inputAddressFormatter(e)).send(r)})).then((function(t){n.isFunction(i)?i(t,t):u.resolve(t)})).catch((function(t){n.isFunction(i)?i(t,null):u.reject(t)})),u.eventEmitter},h.prototype.getTTL=function(t,e){var r=new a(!0);return this.contract.then((function(e){return e.methods.ttl(o.hash(t)).call()})).then((function(t){n.isFunction(e)?e(t,t):r.resolve(t)})).catch((function(t){n.isFunction(e)?e(t,null):r.reject(t)})),r.eventEmitter},h.prototype.setTTL=function(t,e,r,i){var s=new a(!0);return this.contract.then((function(n){return n.methods.setTTL(o.hash(t),e).send(r)})).then((function(t){n.isFunction(i)?i(t,t):s.resolve(t)})).catch((function(t){n.isFunction(i)?i(t,null):s.reject(t)})),s.eventEmitter},h.prototype.setSubnodeOwner=function(t,e,r,i,f){var c=new a(!0);return u.isHexStrict(e)||(e=u.sha3(e)),this.contract.then((function(n){return n.methods.setSubnodeOwner(o.hash(t),e,s.inputAddressFormatter(r)).send(i)})).then((function(t){n.isFunction(f)?f(t,t):c.resolve(t)})).catch((function(t){n.isFunction(f)?f(t,null):c.reject(t)})),c.eventEmitter},h.prototype.setRecord=function(t,e,r,i,u,f){var c=new a(!0);return this.contract.then((function(n){return n.methods.setRecord(o.hash(t),s.inputAddressFormatter(e),s.inputAddressFormatter(r),i).send(u)})).then((function(t){n.isFunction(f)?f(t,t):c.resolve(t)})).catch((function(t){n.isFunction(f)?f(t,null):c.reject(t)})),c.eventEmitter},h.prototype.setSubnodeRecord=function(t,e,r,i,f,c,h){var d=new a(!0);return u.isHexStrict(e)||(e=u.sha3(e)),this.contract.then((function(n){return n.methods.setSubnodeRecord(o.hash(t),e,s.inputAddressFormatter(r),s.inputAddressFormatter(i),f).send(c)})).then((function(t){n.isFunction(h)?h(t,t):d.resolve(t)})).catch((function(t){n.isFunction(h)?h(t,null):d.reject(t)})),d.eventEmitter},h.prototype.setApprovalForAll=function(t,e,r,i){var o=new a(!0);return this.contract.then((function(n){return n.methods.setApprovalForAll(s.inputAddressFormatter(t),e).send(r)})).then((function(t){n.isFunction(i)?i(t,t):o.resolve(t)})).catch((function(t){n.isFunction(i)?i(t,null):o.reject(t)})),o.eventEmitter},h.prototype.isApprovedForAll=function(t,e,r){var i=new a(!0);return this.contract.then((function(r){return r.methods.isApprovedForAll(s.inputAddressFormatter(t),s.inputAddressFormatter(e)).call()})).then((function(t){n.isFunction(r)?r(t,t):i.resolve(t)})).catch((function(t){n.isFunction(r)?r(t,null):i.reject(t)})),i.eventEmitter},h.prototype.recordExists=function(t,e){var r=new a(!0);return this.contract.then((function(e){return e.methods.recordExists(o.hash(t)).call()})).then((function(t){n.isFunction(e)?e(t,t):r.resolve(t)})).catch((function(t){n.isFunction(e)?e(t,null):r.reject(t)})),r.eventEmitter},h.prototype.resolver=function(t,e){return console.warn('Deprecated: Please use the "getResolver" method instead of "resolver".'),this.getResolver(t,e)},h.prototype.getResolver=function(t,e){var r=this;return this.contract.then((function(e){return e.methods.resolver(o.hash(t)).call()})).then((function(t){var o=new i(c,t);if(o.setProvider(r.ens.eth.currentProvider),!n.isFunction(e))return o;e(o,o)})).catch((function(t){if(!n.isFunction(e))throw t;e(t,null)}))},h.prototype.setResolver=function(t,e,r,i){var u=new a(!0);return this.contract.then((function(n){return n.methods.setResolver(o.hash(t),s.inputAddressFormatter(e)).send(r)})).then((function(t){n.isFunction(i)?i(t,t):u.resolve(t)})).catch((function(t){n.isFunction(i)?i(t,null):u.reject(t)})),u.eventEmitter},t.exports=h},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.AddressCoder=void 0;var i=n(r(6)),o=n(r(8)),a=n(r(19)),s=n(r(20)),u=n(r(17)),f=r(78),c=r(13);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,u.default)(t);if(e){var i=(0,u.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var d=function(t){(0,a.default)(r,t);var e=h(r);function r(t){return(0,i.default)(this,r),e.call(this,"address","address",t,!1)}return(0,o.default)(r,[{key:"encode",value:function(t,e){try{(0,f.getAddress)(e)}catch(t){this._throwError(t.message,e)}return t.writeValue(e)}},{key:"decode",value:function(t){return(0,f.getAddress)((0,c.hexZeroPad)(t.readValue().toHexString(),20))}}]),r}(r(25).Coder);e.AddressCoder=d},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.AnonymousCoder=void 0;var i=n(r(6)),o=n(r(8)),a=n(r(19)),s=n(r(20)),u=n(r(17));function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,u.default)(t);if(e){var i=(0,u.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var c=function(t){(0,a.default)(r,t);var e=f(r);function r(t){var n;return(0,i.default)(this,r),(n=e.call(this,t.name,t.type,void 0,t.dynamic)).coder=t,n}return(0,o.default)(r,[{key:"encode",value:function(t,e){return this.coder.encode(t,e)}},{key:"decode",value:function(t){return this.coder.decode(t)}}]),r}(r(25).Coder);e.AnonymousCoder=c},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.BooleanCoder=void 0;var i=n(r(6)),o=n(r(8)),a=n(r(19)),s=n(r(20)),u=n(r(17));function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,u.default)(t);if(e){var i=(0,u.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var c=function(t){(0,a.default)(r,t);var e=f(r);function r(t){return(0,i.default)(this,r),e.call(this,"bool","bool",t,!1)}return(0,o.default)(r,[{key:"encode",value:function(t,e){return t.writeValue(e?1:0)}},{key:"decode",value:function(t){return t.coerce(this.type,!t.readValue().isZero())}}]),r}(r(25).Coder);e.BooleanCoder=c},function(t,e,r){"use strict";var n=r(17);t.exports=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=n(t)););return t}},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.FixedBytesCoder=void 0;var i=n(r(6)),o=n(r(8)),a=n(r(19)),s=n(r(20)),u=n(r(17)),f=r(13);function c(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,u.default)(t);if(e){var i=(0,u.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var h=function(t){(0,a.default)(r,t);var e=c(r);function r(t,n){var o;(0,i.default)(this,r);var a="bytes"+String(t);return(o=e.call(this,a,a,n,!1)).size=t,o}return(0,o.default)(r,[{key:"encode",value:function(t,e){var r=(0,f.arrayify)(e);return r.length!==this.size&&this._throwError("incorrect data length",e),t.writeBytes(r)}},{key:"decode",value:function(t){return t.coerce(this.name,(0,f.hexlify)(t.readBytes(this.size)))}}]),r}(r(25).Coder);e.FixedBytesCoder=h},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.NullCoder=void 0;var i=n(r(6)),o=n(r(8)),a=n(r(19)),s=n(r(20)),u=n(r(17));function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,u.default)(t);if(e){var i=(0,u.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var c=function(t){(0,a.default)(r,t);var e=f(r);function r(t){return(0,i.default)(this,r),e.call(this,"null","",t,!1)}return(0,o.default)(r,[{key:"encode",value:function(t,e){return null!=e&&this._throwError("not null",e),t.writeBytes([])}},{key:"decode",value:function(t){return t.readBytes(0),t.coerce(this.name,null)}}]),r}(r(25).Coder);e.NullCoder=c},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.NumberCoder=void 0;var i=n(r(6)),o=n(r(8)),a=n(r(19)),s=n(r(20)),u=n(r(17)),f=r(33),c=r(79);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,u.default)(t);if(e){var i=(0,u.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var d=function(t){(0,a.default)(r,t);var e=h(r);function r(t,n,o){var a;(0,i.default)(this,r);var s=(n?"int":"uint")+8*t;return(a=e.call(this,s,s,o,!1)).size=t,a.signed=n,a}return(0,o.default)(r,[{key:"encode",value:function(t,e){var r=f.BigNumber.from(e),n=c.MaxUint256.mask(8*t.wordSize);if(this.signed){var i=n.mask(8*this.size-1);(r.gt(i)||r.lt(i.add(c.One).mul(c.NegativeOne)))&&this._throwError("value out-of-bounds",e)}else(r.lt(c.Zero)||r.gt(n.mask(8*this.size)))&&this._throwError("value out-of-bounds",e);return r=r.toTwos(8*this.size).mask(8*this.size),this.signed&&(r=r.fromTwos(8*this.size).toTwos(8*t.wordSize)),t.writeValue(r)}},{key:"decode",value:function(t){var e=t.readValue().mask(8*this.size);return this.signed&&(e=e.fromTwos(8*this.size)),t.coerce(this.name,e)}}]),r}(r(25).Coder);e.NumberCoder=d},function(t,e,r){"use strict";var n=r(0);Object.defineProperty(e,"__esModule",{value:!0}),e.StringCoder=void 0;var i=n(r(6)),o=n(r(8)),a=n(r(134)),s=n(r(19)),u=n(r(20)),f=n(r(17)),c=r(135);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=(0,f.default)(t);if(e){var i=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,u.default)(this,r)}}var d=function(t){(0,s.default)(r,t);var e=h(r);function r(t){return(0,i.default)(this,r),e.call(this,"string",t)}return(0,o.default)(r,[{key:"encode",value:function(t,e){return(0,a.default)((0,f.default)(r.prototype),"encode",this).call(this,t,(0,c.toUtf8Bytes)(e))}},{key:"decode",value:function(t){return(0,c.toUtf8String)((0,a.default)((0,f.default)(r.prototype),"decode",this).call(this,t))}}]),r}(r(133).DynamicBytesCoder);e.StringCoder=d},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.formatBytes32String=function(t){var e=(0,o.toUtf8Bytes)(t);if(e.length>31)throw new Error("bytes32 string must be less than 32 bytes");return(0,i.hexlify)((0,i.concat)([e,n.HashZero]).slice(0,32))},e.parseBytes32String=function(t){var e=(0,i.arrayify)(t);if(32!==e.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==e[31])throw new Error("invalid bytes32 string - no null terminator");var r=31;for(;0===e[r-1];)r--;return(0,o.toUtf8String)(e.slice(0,r))};var n=r(79),i=r(13),o=r(81)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.version=void 0;e.version="strings/5.0.5"},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e._nameprepTableA1=p,e._nameprepTableB2=b,e._nameprepTableC=m,e.nameprep=function(t){if(t.match(/^[a-z0-9-]*$/i)&&t.length<=59)return t.toLowerCase();var e=(0,n.toUtf8CodePoints)(t);r=e.map((function(t){if(u.indexOf(t)>=0)return[];if(t>=65024&&t<=65039)return[];var e=b(t);return e||[t]})),e=r.reduce((function(t,e){return e.forEach((function(e){t.push(e)})),t}),[]),(e=(0,n.toUtf8CodePoints)((0,n._toUtf8String)(e),n.UnicodeNormalizationForm.NFKC)).forEach((function(t){if(m(t))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),e.forEach((function(t){if(p(t))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));var r;var i=(0,n._toUtf8String)(e);if("-"===i.substring(0,1)||"--"===i.substring(2,4)||"-"===i.substring(i.length-1))throw new Error("invalid hyphen");if(i.length>63)throw new Error("too long");return i};var n=r(81);function i(t,e){e||(e=function(t){return[parseInt(t,16)]});var r=0,n={};return t.split(",").forEach((function(t){var i=t.split(":");r+=parseInt(i[0],16),n[r]=e(i[1])})),n}function o(t){var e=0;return t.split(",").map((function(t){var r=t.split("-");return 1===r.length?r[1]="0":""===r[1]&&(r[1]="1"),{l:e+parseInt(r[0],16),h:e=parseInt(r[1],16)}}))}function a(t,e){for(var r=0,n=0;n=(r+=i.l)&&t<=r+i.h&&(t-r)%(i.d||1)==0){if(i.e&&-1!==i.e.indexOf(t-r))continue;return i}}return null}var s=o("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),u="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((function(t){return parseInt(t,16)})),f=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],c=i("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),h=i("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),d=i("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function(t){if(t.length%4!=0)throw new Error("bad data");for(var e=[],r=0;r1&&_.throwArgumentError("multiple matching functions","name",r),this.functions[n[0]]}var i=this.functions[y.FunctionFragment.fromString(t).format()];return i||_.throwArgumentError("no matching function","signature",t),i}},{key:"getEvent",value:function(t){if((0,h.isHexString)(t)){var e=t.toLowerCase();for(var r in this.events)if(e===this.getEventTopic(r))return this.events[r];_.throwArgumentError("no matching event","topichash",e)}if(-1===t.indexOf("(")){var n=t.trim(),i=Object.keys(this.events).filter((function(t){return t.split("(")[0]===n}));return 0===i.length?_.throwArgumentError("no matching event","name",n):i.length>1&&_.throwArgumentError("multiple matching events","name",n),this.events[i[0]]}var o=this.events[y.EventFragment.fromString(t).format()];return o||_.throwArgumentError("no matching event","signature",t),o}},{key:"getSighash",value:function(t){return"string"==typeof t&&(t=this.getFunction(t)),(0,p.getStatic)(this.constructor,"getSighash")(t)}},{key:"getEventTopic",value:function(t){return"string"==typeof t&&(t=this.getEvent(t)),(0,p.getStatic)(this.constructor,"getEventTopic")(t)}},{key:"_decodeParams",value:function(t,e){return this._abiCoder.decode(t,e)}},{key:"_encodeParams",value:function(t,e){return this._abiCoder.encode(t,e)}},{key:"encodeDeploy",value:function(t){return this._encodeParams(this.deploy.inputs,t||[])}},{key:"decodeFunctionData",value:function(t,e){"string"==typeof t&&(t=this.getFunction(t));var r=(0,h.arrayify)(e);return(0,h.hexlify)(r.slice(0,4))!==this.getSighash(t)&&_.throwArgumentError("data signature does not match function ".concat(t.name,"."),"data",(0,h.hexlify)(r)),this._decodeParams(t.inputs,r.slice(4))}},{key:"encodeFunctionData",value:function(t,e){return"string"==typeof t&&(t=this.getFunction(t)),(0,h.hexlify)((0,h.concat)([this.getSighash(t),this._encodeParams(t.inputs,e||[])]))}},{key:"decodeFunctionResult",value:function(t,e){"string"==typeof t&&(t=this.getFunction(t));var r=(0,h.arrayify)(e),n=null,i=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(t.outputs,r)}catch(t){}break;case 4:"0x08c379a0"===(0,h.hexlify)(r.slice(0,4))&&(i="Error(string)",n=this._abiCoder.decode(["string"],r.slice(4))[0])}return _.throwError("call revert exception",v.Logger.errors.CALL_EXCEPTION,{method:t.format(),errorSignature:i,errorArgs:[n],reason:n})}},{key:"encodeFunctionResult",value:function(t,e){return"string"==typeof t&&(t=this.getFunction(t)),(0,h.hexlify)(this._abiCoder.encode(t.outputs,e||[]))}},{key:"encodeFilterTopics",value:function(t,e){var r=this;"string"==typeof t&&(t=this.getEvent(t)),e.length>t.inputs.length&&_.throwError("too many arguments for "+t.format(),v.Logger.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:e});var n=[];t.anonymous||n.push(this.getEventTopic(t));var i=function(t,e){return"string"===t.type?(0,d.id)(e):"bytes"===t.type?(0,l.keccak256)((0,h.hexlify)(e)):("address"===t.type&&r._abiCoder.encode(["address"],[e]),(0,h.hexZeroPad)((0,h.hexlify)(e),32))};for(e.forEach((function(e,r){var o=t.inputs[r];o.indexed?null==e?n.push(null):"array"===o.baseType||"tuple"===o.baseType?_.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,e):Array.isArray(e)?n.push(e.map((function(t){return i(o,t)}))):n.push(i(o,e)):null!=e&&_.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.name,e)}));n.length&&null===n[n.length-1];)n.pop();return n}},{key:"encodeEventLog",value:function(t,e){var r=this;"string"==typeof t&&(t=this.getEvent(t));var n=[],i=[],o=[];return t.anonymous||n.push(this.getEventTopic(t)),e.length!==t.inputs.length&&_.throwArgumentError("event arguments/values mismatch","values",e),t.inputs.forEach((function(t,a){var s=e[a];if(t.indexed)if("string"===t.type)n.push((0,d.id)(s));else if("bytes"===t.type)n.push((0,l.keccak256)(s));else{if("tuple"===t.baseType||"array"===t.baseType)throw new Error("not implemented");n.push(r._abiCoder.encode([t.type],[s]))}else i.push(t),o.push(s)})),{data:this._abiCoder.encode(i,o),topics:n}}},{key:"decodeEventLog",value:function(t,e,r){if("string"==typeof t&&(t=this.getEvent(t)),null!=r&&!t.anonymous){var n=this.getEventTopic(t);(0,h.isHexString)(r[0],32)&&r[0].toLowerCase()===n||_.throwError("fragment/topic mismatch",v.Logger.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:n,value:r[0]}),r=r.slice(1)}var i=[],o=[],a=[];t.inputs.forEach((function(t,e){t.indexed?"string"===t.type||"bytes"===t.type||"tuple"===t.baseType||"array"===t.baseType?(i.push(y.ParamType.fromObject({type:"bytes32",name:t.name})),a.push(!0)):(i.push(t),a.push(!1)):(o.push(t),a.push(!1))}));var s=null!=r?this._abiCoder.decode(i,(0,h.concat)(r)):null,u=this._abiCoder.decode(o,e,!0),f=[],c=0,d=0;t.inputs.forEach((function(t,e){if(t.indexed)if(null==s)f[e]=new S({_isIndexed:!0,hash:null});else if(a[e])f[e]=new S({_isIndexed:!0,hash:s[d++]});else try{f[e]=s[d++]}catch(t){f[e]=t}else try{f[e]=u[c++]}catch(t){f[e]=t}if(t.name&&null==f[t.name]){var r=f[e];r instanceof Error?Object.defineProperty(f,t.name,{get:function(){throw M("property ".concat(JSON.stringify(t.name)),r)}}):f[t.name]=r}}));for(var l=function(t){var e=f[t];e instanceof Error&&Object.defineProperty(f,t,{get:function(){throw M("index ".concat(t),e)}})},p=0;p>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}k.prototype.update=function(e){var t="string"!=typeof e;t&&e.constructor===ArrayBuffer&&(e=new Uint8Array(e));for(var r,n,i=e.length,o=this.blocks,a=this.byteCount,f=this.blockCount,u=0,c=this.s;u>2]|=e[u]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(o[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=a){for(this.start=r-a,this.block=o[f],r=0;r>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(A(r),o=0)}return i&&(e=r[o],i>0&&(f+=a[e>>4&15]+a[15&e]),i>1&&(f+=a[e>>12&15]+a[e>>8&15]),i>2&&(f+=a[e>>20&15]+a[e>>16&15])),f},k.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var f=new Uint32Array(e);a>8&255,f[e+2]=t>>16&255,f[e+3]=t>>24&255;s%r==0&&A(n)}return o&&(e=s<<2,t=n[a],o>0&&(f[e]=255&t),o>1&&(f[e+1]=t>>8&255),o>2&&(f[e+2]=t>>16&255)),f};var A=function(e){var t,r,n,i,o,a,s,u,c,h,d,l,p,b,m,v,y,g,w,_,k,A,S,E,M,x,I,P,N,O,R,U,C,B,T,j,L,F,D,z,q,H,K,V,G,W,$,Y,Z,J,X,Q,ee,te,re,ne,ie,oe,ae,se,fe,ue,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],h=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(l=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(u<<1|c>>>31),r=o^(c<<1|u>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(h<<1|d>>>31),r=s^(d<<1|h>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=u^(l<<1|p>>>31),r=c^(p<<1|l>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],m=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,fe=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,T=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,g=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,U=e[45]<<29|e[44]>>>3,C=e[44]<<29|e[45]>>>3,E=e[6]<<28|e[7]>>>4,M=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,F=e[26]<<25|e[27]>>>7,D=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,k=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,x=e[18]<<20|e[19]>>>12,I=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=b^~v&g,e[1]=m^~y&w,e[10]=E^~x&P,e[11]=M^~I&N,e[20]=B^~j&F,e[21]=T^~L&D,e[30]=V^~W&Y,e[31]=G^~$&Z,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=x^~P&O,e[13]=I^~N&R,e[22]=j^~F&z,e[23]=L^~D&q,e[32]=W^~Y&J,e[33]=$^~Z&X,e[42]=ne^~oe&se,e[43]=ie^~ae&fe,e[4]=g^~_&A,e[5]=w^~k&S,e[14]=P^~O&U,e[15]=N^~R&C,e[24]=F^~z&H,e[25]=D^~q&K,e[34]=Y^~J&Q,e[35]=Z^~X&ee,e[44]=oe^~se&ue,e[45]=ae^~fe&ce,e[6]=_^~A&b,e[7]=k^~S&m,e[16]=O^~U&E,e[17]=R^~C&M,e[26]=z^~H&B,e[27]=q^~K&T,e[36]=J^~Q&V,e[37]=X^~ee&G,e[46]=se^~ue&te,e[47]=fe^~ce&re,e[8]=A^~b&v,e[9]=S^~m&y,e[18]=U^~E&x,e[19]=C^~M&I,e[28]=H^~B&j,e[29]=K^~T&L,e[38]=Q^~V&W,e[39]=ee^~G&$,e[48]=ue^~te&ne,e[49]=ce^~re&ie,e[0]^=f[n],e[1]^=f[n+1]};if(o)n.exports=b;else for(v=0;v>=8;return t}function f(e,t,r){for(var n=0,i=0;it+1+n&&a.throwError("child data too short",i.Logger.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:o}}function c(e,t){if(0===e.length&&a.throwError("data too short",i.Logger.errors.BUFFER_OVERRUN,{}),e[t]>=248){var r=e[t]-247;t+1+r>e.length&&a.throwError("data short segment too short",i.Logger.errors.BUFFER_OVERRUN,{});var o=f(e,t+1,r);return t+1+r+o>e.length&&a.throwError("data long segment too short",i.Logger.errors.BUFFER_OVERRUN,{}),u(e,t,t+1+r,r+o)}if(e[t]>=192){var s=e[t]-192;return t+1+s>e.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{}),u(e,t,t+1,s)}if(e[t]>=184){var c=e[t]-183;t+1+c>e.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{});var h=f(e,t+1,c);return t+1+c+h>e.length&&a.throwError("data array too short",i.Logger.errors.BUFFER_OVERRUN,{}),{consumed:1+c+h,result:(0,n.hexlify)(e.slice(t+1+c,t+1+c+h))}}if(e[t]>=128){var d=e[t]-128;return t+1+d>e.length&&a.throwError("data too short",i.Logger.errors.BUFFER_OVERRUN,{}),{consumed:1+d,result:(0,n.hexlify)(e.slice(t+1,t+1+d))}}return{consumed:1,result:(0,n.hexlify)(e[t])}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="rlp/5.0.4"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="address/5.0.5"},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.AnonymousCoder=void 0;var i=n(r(6)),o=n(r(7)),a=n(r(19)),s=n(r(20)),f=n(r(15));function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,f.default)(e);if(t){var i=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var c=function(e){(0,a.default)(r,e);var t=u(r);function r(e){var n;return(0,i.default)(this,r),(n=t.call(this,e.name,e.type,void 0,e.dynamic)).coder=e,n}return(0,o.default)(r,[{key:"encode",value:function(e,t){return this.coder.encode(e,t)}},{key:"decode",value:function(e){return this.coder.decode(e)}}]),r}(r(26).Coder);t.AnonymousCoder=c},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanCoder=void 0;var i=n(r(6)),o=n(r(7)),a=n(r(19)),s=n(r(20)),f=n(r(15));function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,f.default)(e);if(t){var i=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var c=function(e){(0,a.default)(r,e);var t=u(r);function r(e){return(0,i.default)(this,r),t.call(this,"bool","bool",e,!1)}return(0,o.default)(r,[{key:"encode",value:function(e,t){return e.writeValue(t?1:0)}},{key:"decode",value:function(e){return e.coerce(this.type,!e.readValue().isZero())}}]),r}(r(26).Coder);t.BooleanCoder=c},function(e,t,r){"use strict";var n=r(15);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=n(e)););return e}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.FixedBytesCoder=void 0;var i=n(r(6)),o=n(r(7)),a=n(r(19)),s=n(r(20)),f=n(r(15)),u=r(24);function c(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,f.default)(e);if(t){var i=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var h=function(e){(0,a.default)(r,e);var t=c(r);function r(e,n){var o;(0,i.default)(this,r);var a="bytes"+String(e);return(o=t.call(this,a,a,n,!1)).size=e,o}return(0,o.default)(r,[{key:"encode",value:function(e,t){var r=(0,u.arrayify)(t);return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}},{key:"decode",value:function(e){return e.coerce(this.name,(0,u.hexlify)(e.readBytes(this.size)))}}]),r}(r(26).Coder);t.FixedBytesCoder=h},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.NullCoder=void 0;var i=n(r(6)),o=n(r(7)),a=n(r(19)),s=n(r(20)),f=n(r(15));function u(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,f.default)(e);if(t){var i=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var c=function(e){(0,a.default)(r,e);var t=u(r);function r(e){return(0,i.default)(this,r),t.call(this,"null","",e,!1)}return(0,o.default)(r,[{key:"encode",value:function(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}},{key:"decode",value:function(e){return e.readBytes(0),e.coerce(this.name,null)}}]),r}(r(26).Coder);t.NullCoder=c},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.NumberCoder=void 0;var i=n(r(6)),o=n(r(7)),a=n(r(19)),s=n(r(20)),f=n(r(15)),u=r(38),c=r(319);function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,f.default)(e);if(t){var i=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var d=function(e){(0,a.default)(r,e);var t=h(r);function r(e,n,o){var a;(0,i.default)(this,r);var s=(n?"int":"uint")+8*e;return(a=t.call(this,s,s,o,!1)).size=e,a.signed=n,a}return(0,o.default)(r,[{key:"encode",value:function(e,t){var r=u.BigNumber.from(t),n=c.MaxUint256.mask(8*e.wordSize);if(this.signed){var i=n.mask(8*this.size-1);(r.gt(i)||r.lt(i.add(c.One).mul(c.NegativeOne)))&&this._throwError("value out-of-bounds",t)}else(r.lt(c.Zero)||r.gt(n.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return r=r.toTwos(8*this.size).mask(8*this.size),this.signed&&(r=r.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(r)}},{key:"decode",value:function(e){var t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}}]),r}(r(26).Coder);t.NumberCoder=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MaxUint256=t.WeiPerEther=t.Two=t.One=t.Zero=t.NegativeOne=t.EtherSymbol=t.HashZero=t.AddressZero=void 0;var n=r(38);t.AddressZero="0x0000000000000000000000000000000000000000";t.HashZero="0x0000000000000000000000000000000000000000000000000000000000000000";t.EtherSymbol="Ξ";var i=n.BigNumber.from(-1);t.NegativeOne=i;var o=n.BigNumber.from(0);t.Zero=o;var a=n.BigNumber.from(1);t.One=a;var s=n.BigNumber.from(2);t.Two=s;var f=n.BigNumber.from("1000000000000000000");t.WeiPerEther=f;var u=n.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");t.MaxUint256=u},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.StringCoder=void 0;var i=n(r(6)),o=n(r(7)),a=n(r(147)),s=n(r(19)),f=n(r(20)),u=n(r(15)),c=r(148);function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,u.default)(e);if(t){var i=(0,u.default)(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return(0,f.default)(this,r)}}var d=function(e){(0,s.default)(r,e);var t=h(r);function r(e){return(0,i.default)(this,r),t.call(this,"string",e)}return(0,o.default)(r,[{key:"encode",value:function(e,t){return(0,a.default)((0,u.default)(r.prototype),"encode",this).call(this,e,(0,c.toUtf8Bytes)(t))}},{key:"decode",value:function(e){return(0,c.toUtf8String)((0,a.default)((0,u.default)(r.prototype),"decode",this).call(this,e))}}]),r}(r(146).DynamicBytesCoder);t.StringCoder=d},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatBytes32String=function(e){var t=(0,o.toUtf8Bytes)(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return(0,i.hexlify)((0,i.concat)([t,n.HashZero]).slice(0,32))},t.parseBytes32String=function(e){var t=(0,i.arrayify)(e);if(32!==t.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==t[31])throw new Error("invalid bytes32 string - no null terminator");var r=31;for(;0===t[r-1];)r--;return(0,o.toUtf8String)(t.slice(0,r))};var n=r(322),i=r(66),o=r(88)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MaxUint256=t.WeiPerEther=t.Two=t.One=t.Zero=t.NegativeOne=t.EtherSymbol=t.HashZero=t.AddressZero=void 0;var n=r(323);t.AddressZero="0x0000000000000000000000000000000000000000";t.HashZero="0x0000000000000000000000000000000000000000000000000000000000000000";t.EtherSymbol="Ξ";var i=n.BigNumber.from(-1);t.NegativeOne=i;var o=n.BigNumber.from(0);t.Zero=o;var a=n.BigNumber.from(1);t.One=a;var s=n.BigNumber.from(2);t.Two=s;var f=n.BigNumber.from("1000000000000000000");t.WeiPerEther=f;var u=n.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");t.MaxUint256=u},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BigNumber",{enumerable:!0,get:function(){return n.BigNumber}}),Object.defineProperty(t,"formatFixed",{enumerable:!0,get:function(){return i.formatFixed}}),Object.defineProperty(t,"FixedFormat",{enumerable:!0,get:function(){return i.FixedFormat}}),Object.defineProperty(t,"FixedNumber",{enumerable:!0,get:function(){return i.FixedNumber}}),Object.defineProperty(t,"parseFixed",{enumerable:!0,get:function(){return i.parseFixed}});var n=r(149),i=r(326)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="logger/5.0.6"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="bytes/5.0.5"},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.formatFixed=y,t.parseFixed=g,t.FixedNumber=t.FixedFormat=void 0;var i=n(r(1)),o=n(r(6)),a=n(r(7)),s=r(66),f=r(67),u=r(150),c=r(149),h=new f.Logger(u.version),d={},l=c.BigNumber.from(0),p=c.BigNumber.from(-1);function b(e,t,r,n){var i={fault:t,operation:r};return void 0!==n&&(i.value=n),h.throwError(e,f.Logger.errors.NUMERIC_FAULT,i)}for(var m="0";m.length<256;)m+=m;function v(e){if("number"!=typeof e)try{e=c.BigNumber.from(e).toNumber()}catch(e){}return"number"==typeof e&&e>=0&&e<=256&&!(e%1)?"1"+m.substring(0,e):h.throwArgumentError("invalid decimal size","decimals",e)}function y(e,t){null==t&&(t=0);var r=v(t),n=(e=c.BigNumber.from(e)).lt(l);n&&(e=e.mul(p));for(var i=e.mod(r).toString();i.length2&&h.throwArgumentError("too many decimal points","value",e);var o=i[0],a=i[1];for(o||(o="0"),a||(a="0"),a.length>r.length-1&&b("fractional component exceeds decimals","underflow","parseFixed");a.length80&&h.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",o),new e(d,r,n,o)}}]),e}();t.FixedFormat=w;var _=function(){function e(t,r,n,i){(0,o.default)(this,e),h.checkNew(this instanceof e?this.constructor:void 0,e),t!==d&&h.throwError("cannot use FixedNumber constructor; use FixedNumber.from",f.Logger.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=i,this._hex=r,this._value=n,this._isFixedNumber=!0,Object.freeze(this)}return(0,a.default)(e,[{key:"_checkFormat",value:function(e){this.format.name!==e.format.name&&h.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",e)}},{key:"addUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.add(n),this.format.decimals,this.format)}},{key:"subUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.sub(n),this.format.decimals,this.format)}},{key:"mulUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}},{key:"divUnsafe",value:function(t){this._checkFormat(t);var r=g(this._value,this.format.decimals),n=g(t._value,t.format.decimals);return e.fromValue(r.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}},{key:"floor",value:function(){var t=this.toString().split("."),r=e.from(t[0],this.format),n=!t[1].match(/^(0*)$/);return this.isNegative()&&n&&(r=r.subUnsafe(k)),r}},{key:"ceiling",value:function(){var t=this.toString().split("."),r=e.from(t[0],this.format),n=!t[1].match(/^(0*)$/);return!this.isNegative()&&n&&(r=r.addUnsafe(k)),r}},{key:"round",value:function(t){null==t&&(t=0);var r=this.toString().split(".");if((t<0||t>80||t%1)&&h.throwArgumentError("invalid decimal count","decimals",t),r[1].length<=t)return this;var n=e.from("1"+m.substring(0,t));return this.mulUnsafe(n).addUnsafe(A).floor().divUnsafe(n)}},{key:"isZero",value:function(){return"0.0"===this._value}},{key:"isNegative",value:function(){return"-"===this._value[0]}},{key:"toString",value:function(){return this._value}},{key:"toHexString",value:function(e){if(null==e)return this._hex;e%8&&h.throwArgumentError("invalid byte width","width",e);var t=c.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(e).toHexString();return(0,s.hexZeroPad)(t,e/8)}},{key:"toUnsafeFloat",value:function(){return parseFloat(this.toString())}},{key:"toFormat",value:function(t){return e.fromString(this._value,t)}}],[{key:"fromValue",value:function(t,r,n){return null!=n||null==r||(0,c.isBigNumberish)(r)||(n=r,r=null),null==r&&(r=0),null==n&&(n="fixed"),e.fromString(y(t,r),w.from(n))}},{key:"fromString",value:function(t,r){null==r&&(r="fixed");var n=w.from(r),i=g(t,n.decimals);!n.signed&&i.lt(l)&&b("unsigned value cannot be negative","overflow","value",t);var o=null;n.signed?o=i.toTwos(n.width).toHexString():(o=i.toHexString(),o=(0,s.hexZeroPad)(o,n.width/8));var a=y(i,n.decimals);return new e(d,o,a,n)}},{key:"fromBytes",value:function(t,r){null==r&&(r="fixed");var n=w.from(r);if((0,s.arrayify)(t).length>n.width/8)throw new Error("overflow");var i=c.BigNumber.from(t);n.signed&&(i=i.fromTwos(n.width));var o=i.toTwos((n.signed?0:1)+n.width).toHexString(),a=y(i,n.decimals);return new e(d,o,a,n)}},{key:"from",value:function(t,r){if("string"==typeof t)return e.fromString(t,r);if((0,s.isBytes)(t))return e.fromBytes(t,r);try{return e.fromValue(t,0,r)}catch(e){if(e.code!==f.Logger.errors.INVALID_ARGUMENT)throw e}return h.throwArgumentError("invalid FixedNumber value","value",t)}},{key:"isFixedNumber",value:function(e){return!(!e||!e._isFixedNumber)}}]),e}();t.FixedNumber=_;var k=_.from(1),A=_.from("0.5")},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="strings/5.0.5"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t._nameprepTableA1=p,t._nameprepTableB2=b,t._nameprepTableC=m,t.nameprep=function(e){if(e.match(/^[a-z0-9-]*$/i)&&e.length<=59)return e.toLowerCase();var t=(0,n.toUtf8CodePoints)(e);r=t.map((function(e){if(f.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];var t=b(e);return t||[e]})),t=r.reduce((function(e,t){return t.forEach((function(t){e.push(t)})),e}),[]),(t=(0,n.toUtf8CodePoints)((0,n._toUtf8String)(t),n.UnicodeNormalizationForm.NFKC)).forEach((function(e){if(m(e))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((function(e){if(p(e))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));var r;var i=(0,n._toUtf8String)(t);if("-"===i.substring(0,1)||"--"===i.substring(2,4)||"-"===i.substring(i.length-1))throw new Error("invalid hyphen");if(i.length>63)throw new Error("too long");return i};var n=r(88);function i(e,t){t||(t=function(e){return[parseInt(e,16)]});var r=0,n={};return e.split(",").forEach((function(e){var i=e.split(":");r+=parseInt(i[0],16),n[r]=t(i[1])})),n}function o(e){var t=0;return e.split(",").map((function(e){var r=e.split("-");return 1===r.length?r[1]="0":""===r[1]&&(r[1]="1"),{l:t+parseInt(r[0],16),h:t=parseInt(r[1],16)}}))}function a(e,t){for(var r=0,n=0;n=(r+=i.l)&&e<=r+i.h&&(e-r)%(i.d||1)==0){if(i.e&&-1!==i.e.indexOf(e-r))continue;return i}}return null}var s=o("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),f="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((function(e){return parseInt(e,16)})),u=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],c=i("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),h=i("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),d=i("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function(e){if(e.length%4!=0)throw new Error("bad data");for(var t=[],r=0;r1&&_.throwArgumentError("multiple matching functions","name",r),this.functions[n[0]]}var i=this.functions[v.FunctionFragment.fromString(e).format()];return i||_.throwArgumentError("no matching function","signature",e),i}},{key:"getEvent",value:function(e){if((0,h.isHexString)(e)){var t=e.toLowerCase();for(var r in this.events)if(t===this.getEventTopic(r))return this.events[r];_.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){var n=e.trim(),i=Object.keys(this.events).filter((function(e){return e.split("(")[0]===n}));return 0===i.length?_.throwArgumentError("no matching event","name",n):i.length>1&&_.throwArgumentError("multiple matching events","name",n),this.events[i[0]]}var o=this.events[v.EventFragment.fromString(e).format()];return o||_.throwArgumentError("no matching event","signature",e),o}},{key:"getSighash",value:function(e){return"string"==typeof e&&(e=this.getFunction(e)),(0,p.getStatic)(this.constructor,"getSighash")(e)}},{key:"getEventTopic",value:function(e){return"string"==typeof e&&(e=this.getEvent(e)),(0,p.getStatic)(this.constructor,"getEventTopic")(e)}},{key:"_decodeParams",value:function(e,t){return this._abiCoder.decode(e,t)}},{key:"_encodeParams",value:function(e,t){return this._abiCoder.encode(e,t)}},{key:"encodeDeploy",value:function(e){return this._encodeParams(this.deploy.inputs,e||[])}},{key:"decodeFunctionData",value:function(e,t){"string"==typeof e&&(e=this.getFunction(e));var r=(0,h.arrayify)(t);return(0,h.hexlify)(r.slice(0,4))!==this.getSighash(e)&&_.throwArgumentError("data signature does not match function ".concat(e.name,"."),"data",(0,h.hexlify)(r)),this._decodeParams(e.inputs,r.slice(4))}},{key:"encodeFunctionData",value:function(e,t){return"string"==typeof e&&(e=this.getFunction(e)),(0,h.hexlify)((0,h.concat)([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}},{key:"decodeFunctionResult",value:function(e,t){"string"==typeof e&&(e=this.getFunction(e));var r=(0,h.arrayify)(t),n=null,i=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,r)}catch(e){}break;case 4:"0x08c379a0"===(0,h.hexlify)(r.slice(0,4))&&(i="Error(string)",n=this._abiCoder.decode(["string"],r.slice(4))[0])}return _.throwError("call revert exception",y.Logger.errors.CALL_EXCEPTION,{method:e.format(),errorSignature:i,errorArgs:[n],reason:n})}},{key:"encodeFunctionResult",value:function(e,t){return"string"==typeof e&&(e=this.getFunction(e)),(0,h.hexlify)(this._abiCoder.encode(e.outputs,t||[]))}},{key:"encodeFilterTopics",value:function(e,t){var r=this;"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&_.throwError("too many arguments for "+e.format(),y.Logger.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});var n=[];e.anonymous||n.push(this.getEventTopic(e));var i=function(e,t){return"string"===e.type?(0,d.id)(t):"bytes"===e.type?(0,l.keccak256)((0,h.hexlify)(t)):("address"===e.type&&r._abiCoder.encode(["address"],[t]),(0,h.hexZeroPad)((0,h.hexlify)(t),32))};for(t.forEach((function(t,r){var o=e.inputs[r];o.indexed?null==t?n.push(null):"array"===o.baseType||"tuple"===o.baseType?_.throwArgumentError("filtering with tuples or arrays not supported","contract."+o.name,t):Array.isArray(t)?n.push(t.map((function(e){return i(o,e)}))):n.push(i(o,t)):null!=t&&_.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+o.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}},{key:"encodeEventLog",value:function(e,t){var r=this;"string"==typeof e&&(e=this.getEvent(e));var n=[],i=[],o=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&_.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach((function(e,a){var s=t[a];if(e.indexed)if("string"===e.type)n.push((0,d.id)(s));else if("bytes"===e.type)n.push((0,l.keccak256)(s));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(r._abiCoder.encode([e.type],[s]))}else i.push(e),o.push(s)})),{data:this._abiCoder.encode(i,o),topics:n}}},{key:"decodeEventLog",value:function(e,t,r){if("string"==typeof e&&(e=this.getEvent(e)),null!=r&&!e.anonymous){var n=this.getEventTopic(e);(0,h.isHexString)(r[0],32)&&r[0].toLowerCase()===n||_.throwError("fragment/topic mismatch",y.Logger.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:n,value:r[0]}),r=r.slice(1)}var i=[],o=[],a=[];e.inputs.forEach((function(e,t){e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(i.push(v.ParamType.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(i.push(e),a.push(!1)):(o.push(e),a.push(!1))}));var s=null!=r?this._abiCoder.decode(i,(0,h.concat)(r)):null,f=this._abiCoder.decode(o,t,!0),u=[],c=0,d=0;e.inputs.forEach((function(e,t){if(e.indexed)if(null==s)u[t]=new S({_isIndexed:!0,hash:null});else if(a[t])u[t]=new S({_isIndexed:!0,hash:s[d++]});else try{u[t]=s[d++]}catch(e){u[t]=e}else try{u[t]=f[c++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){var r=u[t];r instanceof Error?Object.defineProperty(u,e.name,{get:function(){throw E("property ".concat(JSON.stringify(e.name)),r)}}):u[e.name]=r}}));for(var l=function(e){var t=u[e];t instanceof Error&&Object.defineProperty(u,e,{get:function(){throw E("index ".concat(e),t)}})},p=0;p>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}k.prototype.update=function(e){var t="string"!=typeof e;t&&e.constructor===ArrayBuffer&&(e=new Uint8Array(e));for(var r,n,i=e.length,o=this.blocks,a=this.byteCount,f=this.blockCount,u=0,c=this.s;u>2]|=e[u]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(o[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=a){for(this.start=r-a,this.block=o[f],r=0;r>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(A(r),o=0)}return i&&(e=r[o],i>0&&(f+=a[e>>4&15]+a[15&e]),i>1&&(f+=a[e>>12&15]+a[e>>8&15]),i>2&&(f+=a[e>>20&15]+a[e>>16&15])),f},k.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var f=new Uint32Array(e);a>8&255,f[e+2]=t>>16&255,f[e+3]=t>>24&255;s%r==0&&A(n)}return o&&(e=s<<2,t=n[a],o>0&&(f[e]=255&t),o>1&&(f[e+1]=t>>8&255),o>2&&(f[e+2]=t>>16&255)),f};var A=function(e){var t,r,n,i,o,a,s,u,c,h,d,l,p,b,m,v,y,g,w,_,k,A,S,E,M,x,I,P,N,O,R,U,C,B,T,j,L,F,D,z,q,H,K,V,G,W,$,Y,Z,J,X,Q,ee,te,re,ne,ie,oe,ae,se,fe,ue,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],h=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(l=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(u<<1|c>>>31),r=o^(c<<1|u>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(h<<1|d>>>31),r=s^(d<<1|h>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=u^(l<<1|p>>>31),r=c^(p<<1|l>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],m=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,fe=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,T=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,g=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,U=e[45]<<29|e[44]>>>3,C=e[44]<<29|e[45]>>>3,E=e[6]<<28|e[7]>>>4,M=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,F=e[26]<<25|e[27]>>>7,D=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,k=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,x=e[18]<<20|e[19]>>>12,I=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=b^~v&g,e[1]=m^~y&w,e[10]=E^~x&P,e[11]=M^~I&N,e[20]=B^~j&F,e[21]=T^~L&D,e[30]=V^~W&Y,e[31]=G^~$&Z,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=x^~P&O,e[13]=I^~N&R,e[22]=j^~F&z,e[23]=L^~D&q,e[32]=W^~Y&J,e[33]=$^~Z&X,e[42]=ne^~oe&se,e[43]=ie^~ae&fe,e[4]=g^~_&A,e[5]=w^~k&S,e[14]=P^~O&U,e[15]=N^~R&C,e[24]=F^~z&H,e[25]=D^~q&K,e[34]=Y^~J&Q,e[35]=Z^~X&ee,e[44]=oe^~se&ue,e[45]=ae^~fe&ce,e[6]=_^~A&b,e[7]=k^~S&m,e[16]=O^~U&E,e[17]=R^~C&M,e[26]=z^~H&B,e[27]=q^~K&T,e[36]=J^~Q&V,e[37]=X^~ee&G,e[46]=se^~ue&te,e[47]=fe^~ce&re,e[8]=A^~b&v,e[9]=S^~m&y,e[18]=U^~E&x,e[19]=C^~M&I,e[28]=H^~B&j,e[29]=K^~T&L,e[38]=Q^~V&W,e[39]=ee^~G&$,e[48]=ue^~te&ne,e[49]=ce^~re&ie,e[0]^=f[n],e[1]^=f[n+1]};if(o)n.exports=b;else for(v=0;v>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}k.prototype.update=function(e){var t="string"!=typeof e;t&&e.constructor===ArrayBuffer&&(e=new Uint8Array(e));for(var r,n,i=e.length,o=this.blocks,a=this.byteCount,f=this.blockCount,u=0,c=this.s;u>2]|=e[u]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(o[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=a){for(this.start=r-a,this.block=o[f],r=0;r>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[r],t=1;t>4&15]+a[15&e]+a[e>>12&15]+a[e>>8&15]+a[e>>20&15]+a[e>>16&15]+a[e>>28&15]+a[e>>24&15];s%t==0&&(A(r),o=0)}return i&&(e=r[o],i>0&&(f+=a[e>>4&15]+a[15&e]),i>1&&(f+=a[e>>12&15]+a[e>>8&15]),i>2&&(f+=a[e>>20&15]+a[e>>16&15])),f},k.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;e=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var f=new Uint32Array(e);a>8&255,f[e+2]=t>>16&255,f[e+3]=t>>24&255;s%r==0&&A(n)}return o&&(e=s<<2,t=n[a],o>0&&(f[e]=255&t),o>1&&(f[e+1]=t>>8&255),o>2&&(f[e+2]=t>>16&255)),f};var A=function(e){var t,r,n,i,o,a,s,u,c,h,d,l,p,b,m,v,y,g,w,_,k,A,S,E,M,x,I,P,N,O,R,U,C,B,T,j,L,F,D,z,q,H,K,V,G,W,$,Y,Z,J,X,Q,ee,te,re,ne,ie,oe,ae,se,fe,ue,ce;for(n=0;n<48;n+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],o=e[1]^e[11]^e[21]^e[31]^e[41],a=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],h=e[6]^e[16]^e[26]^e[36]^e[46],d=e[7]^e[17]^e[27]^e[37]^e[47],t=(l=e[8]^e[18]^e[28]^e[38]^e[48])^(a<<1|s>>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|a>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(u<<1|c>>>31),r=o^(c<<1|u>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=a^(h<<1|d>>>31),r=s^(d<<1|h>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=u^(l<<1|p>>>31),r=c^(p<<1|l>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],m=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,fe=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,T=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,g=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,U=e[45]<<29|e[44]>>>3,C=e[44]<<29|e[45]>>>3,E=e[6]<<28|e[7]>>>4,M=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,F=e[26]<<25|e[27]>>>7,D=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,k=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,x=e[18]<<20|e[19]>>>12,I=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=b^~v&g,e[1]=m^~y&w,e[10]=E^~x&P,e[11]=M^~I&N,e[20]=B^~j&F,e[21]=T^~L&D,e[30]=V^~W&Y,e[31]=G^~$&Z,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=x^~P&O,e[13]=I^~N&R,e[22]=j^~F&z,e[23]=L^~D&q,e[32]=W^~Y&J,e[33]=$^~Z&X,e[42]=ne^~oe&se,e[43]=ie^~ae&fe,e[4]=g^~_&A,e[5]=w^~k&S,e[14]=P^~O&U,e[15]=N^~R&C,e[24]=F^~z&H,e[25]=D^~q&K,e[34]=Y^~J&Q,e[35]=Z^~X&ee,e[44]=oe^~se&ue,e[45]=ae^~fe&ce,e[6]=_^~A&b,e[7]=k^~S&m,e[16]=O^~U&E,e[17]=R^~C&M,e[26]=z^~H&B,e[27]=q^~K&T,e[36]=J^~Q&V,e[37]=X^~ee&G,e[46]=se^~ue&te,e[47]=fe^~ce&re,e[8]=A^~b&v,e[9]=S^~m&y,e[18]=U^~E&x,e[19]=C^~M&I,e[28]=H^~B&j,e[29]=K^~T&L,e[38]=Q^~V&W,e[39]=ee^~G&$,e[48]=ue^~te&ne,e[49]=ce^~re&ie,e[0]^=f[n],e[1]^=f[n+1]};if(o)n.exports=b;else for(v=0;v>23,d=c>>21&3,l=c>>5&65535,p=31&c,b=t.mapStr.substr(l,p);if(0===d||n&&1&h)throw new Error("Illegal char "+u);1===d?o.push(b):2===d?o.push(i?b:u):3===d&&o.push(u)}return o.join("").normalize("NFC")}function n(t,n,o){void 0===o&&(o=!1);var a=r(t,o,n).split(".");return(a=a.map((function(t){return t.startsWith("xn--")?i(t=e.decode(t.substring(4)),o,!1):i(t,o,n),t}))).join(".")}function i(e,n,i){if("-"===e[2]&&"-"===e[3])throw new Error("Failed to validate "+e);if(e.startsWith("-")||e.endsWith("-"))throw new Error("Failed to validate "+e);if(e.includes("."))throw new Error("Failed to validate "+e);if(r(e,n,i)!==e)throw new Error("Failed to validate "+e);var o=e.codePointAt(0);if(t.mapChar(o)&2<<23)throw new Error("Label contains illegal character: "+o)}return{toUnicode:function(e,t){return void 0===t&&(t={}),n(e,!1,"useStd3ASCII"in t&&t.useStd3ASCII)},toAscii:function(t,r){void 0===r&&(r={});var i,o=!("transitional"in r)||r.transitional,a="useStd3ASCII"in r&&r.useStd3ASCII,s="verifyDnsLength"in r&&r.verifyDnsLength,f=n(t,o,a).split(".").map(e.toASCII),u=f.join(".");if(s){if(u.length<1||u.length>253)throw new Error("DNS name has wrong length: "+u);for(i=0;i63)throw new Error("DNS label has wrong length: "+c)}}return u}}}(e,t)}.apply(t,n))||(e.exports=i)},function(e,t,r){"use strict";var n;r(0)(r(1));void 0===(n=function(){return e=[new Uint32Array([2157250,2157314,2157378,2157442,2157506,2157570,2157634,0,2157698,2157762,2157826,2157890,2157954,0,2158018,0]),new Uint32Array([2179041,6291456,2179073,6291456,2179105,6291456,2179137,6291456,2179169,6291456,2179201,6291456,2179233,6291456,2179265,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,14680064,14680064,14680064,14680064,14680064]),new Uint32Array([0,2113729,2197345,2197377,2113825,2197409,2197441,2113921,2197473,2114017,2197505,2197537,2197569,2197601,2197633,2197665]),new Uint32Array([6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,23068672,23068672,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,0,23068672,23068672,23068672,0,0,0,0,23068672]),new Uint32Array([14680064,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,14680064,14680064]),new Uint32Array([2196001,2196033,2196065,2196097,2196129,2196161,2196193,2196225,2196257,2196289,2196321,2196353,2196385,2196417,2196449,2196481]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,6291456,0,0,0,0,0]),new Uint32Array([2097281,2105921,2097729,2106081,0,2097601,2162337,2106017,2133281,2097505,2105889,2097185,2097697,2135777,2097633,2097441]),new Uint32Array([2177025,6291456,2177057,6291456,2177089,6291456,2177121,6291456,2177153,6291456,2177185,6291456,2177217,6291456,2177249,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,0,6291456,6291456,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456]),new Uint32Array([0,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,6291456]),new Uint32Array([2134435,2134531,2134627,2134723,2134723,2134819,2134819,2134915,2134915,2135011,2105987,2135107,2135203,2135299,2131587,2135395]),new Uint32Array([0,0,0,0,0,0,0,6291456,2168673,2169249,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2147906,2147970,2148034,2148098,2148162,2148226,2148290,2148354,2147906,2147970,2148034,2148098,2148162,2148226,2148290,2148354]),new Uint32Array([2125219,2125315,2152834,2152898,2125411,2152962,2153026,2125506,2125507,2125603,2153090,2153154,2153218,2153282,2153346,2105348]),new Uint32Array([2203393,6291456,2203425,6291456,2203457,6291456,2203489,6291456,6291456,6291456,6291456,2203521,6291456,2181281,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,23068672,6291456,2145538,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,6291456]),new Uint32Array([2139426,2160834,2160898,2160962,2134242,2161026,2161090,2161154,2161218,2161282,2161346,2161410,2138658,2161474,2161538,2134722]),new Uint32Array([2119939,2124930,2125026,2106658,2125218,2128962,2129058,2129154,2129250,2129346,2129442,2108866,2108770,2150466,2150530,2150594]),new Uint32Array([2201601,6291456,2201633,6291456,2201665,6291456,2201697,6291456,2201729,6291456,2201761,6291456,2201793,6291456,2201825,6291456]),new Uint32Array([2193537,2193569,2193601,2193633,2193665,2193697,2193729,2193761,2193793,2193825,2193857,2193889,2193921,2193953,2193985,2194017]),new Uint32Array([6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2190561,6291456,2190593,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2190625,6291456,2190657,6291456,23068672]),new Uint32Array([2215905,2215937,2215969,2216001,2216033,2216065,2216097,2216129,2216161,2216193,2216225,2216257,2105441,2216289,2216321,2216353]),new Uint32Array([23068672,18884130,23068672,23068672,23068672,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2191233,2191265,2191297,2191329,2191361,2191393,2191425,2117377,2191457,2191489,2191521,2191553,2191585,2191617,2191649,2117953]),new Uint32Array([2132227,2132323,2132419,2132419,2132515,2132515,2132611,2132707,2132707,2132803,2132899,2132899,2132995,2132995,2133091,2133187]),new Uint32Array([0,0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,6291456,0,0]),new Uint32Array([2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,10609889,10610785,10609921,10610817,2222241]),new Uint32Array([6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,0,0]),new Uint32Array([2219969,2157121,2157441,2157505,2157889,2157953,2220001,2158465,2158529,10575617,2156994,2157058,2129923,2130019,2157122,2157186]),new Uint32Array([6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0]),new Uint32Array([2185249,6291456,2185281,6291456,2185313,6291456,2185345,6291456,2185377,6291456,2185409,6291456,2185441,6291456,2185473,6291456]),new Uint32Array([0,0,0,0,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,0,23068672,23068672,0,0,23068672,23068672,23068672,6291456,0]),new Uint32Array([2183361,6291456,2183393,6291456,2183425,6291456,2183457,6291456,2183489,6291456,2183521,6291456,2183553,6291456,2183585,6291456]),new Uint32Array([2192161,2192193,2192225,2192257,2192289,2192321,2192353,2192385,2192417,2192449,2192481,2192513,2192545,2192577,2192609,2192641]),new Uint32Array([2212001,2212033,2212065,2212097,2212129,2212161,2212193,2212225,2212257,2212289,2212321,2212353,2212385,2212417,2212449,2207265]),new Uint32Array([2249825,2249857,2249889,2249921,2249954,2250018,2250082,2250145,2250177,2250209,2250241,2250274,2250337,2250370,2250433,2250465]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2147905,2147969,2148033,2148097,2148161,2148225,2148289,2148353]),new Uint32Array([10485857,6291456,2197217,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,23068672,23068672]),new Uint32Array([0,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([2180353,2180385,2144033,2180417,2180449,2180481,2180513,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,10610209,10610465,10610241,10610753,10609857]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,0,0]),new Uint32Array([2223842,2223906,2223970,2224034,2224098,2224162,2224226,2224290,2224354,2224418,2224482,2224546,2224610,2224674,2224738,2224802]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,6291456,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456]),new Uint32Array([23068672,23068672,23068672,18923650,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,18923714,23068672,23068672]),new Uint32Array([2126179,2125538,2126275,2126371,2126467,2125634,2126563,2105603,2105604,2125346,2126659,2126755,2126851,2098179,2098181,2098182]),new Uint32Array([2227426,2227490,2227554,2227618,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2192353,2240642,2240642,2240705,2240737,2240737,2240769,2240802,2240866,2240929,2240961,2240993,2241025,2241057,2241089,2241121]),new Uint32Array([6291456,2170881,2170913,2170945,6291456,2170977,6291456,2171009,2171041,6291456,6291456,6291456,2171073,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2132226,2132514,2163586,2132610,2160386,2133090,2133186,2160450,2160514,2160578,2133570,2106178,2160642,2133858,2160706,2160770]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,10532162,10532226,10532290,10532354,10532418,10532482,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,23068672]),new Uint32Array([2098209,2108353,2108193,2108481,2170241,2111713,2105473,2105569,2105601,2112289,2112481,2098305,2108321,0,0,0]),new Uint32Array([2209121,2209153,2209185,2209217,2209249,2209281,2209313,2209345,2209377,2209409,2209441,2209473,2207265,2209505,2209537,2209569]),new Uint32Array([2189025,6291456,2189057,6291456,2189089,6291456,2189121,6291456,2189153,6291456,2189185,6291456,2189217,6291456,2189249,6291456]),new Uint32Array([2173825,2153473,2173857,2173889,2173921,2173953,2173985,2173761,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233057]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2165764,2140004]),new Uint32Array([2215105,6291456,2215137,6291456,6291456,2215169,2215201,6291456,6291456,6291456,2215233,2215265,2215297,2215329,2215361,2215393]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,6291456,6291456,6291456,23068672,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([10505091,10505187,10505283,10505379,10505475,10505571,10505667,10505763,10505859,10505955,10506051,10506147,10506243,10506339,10506435,10506531]),new Uint32Array([2229730,2229794,2229858,2229922,2229986,2230050,2230114,2230178,2230242,2230306,2230370,2230434,2230498,2230562,2230626,2230690]),new Uint32Array([2105505,2098241,2108353,2108417,2105825,0,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177]),new Uint32Array([6291456,6291456,6291456,6291456,10502115,10502178,10502211,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456]),new Uint32Array([2190305,6291456,2190337,6291456,2190369,6291456,2190401,6291456,2190433,6291456,2190465,6291456,2190497,6291456,2190529,6291456]),new Uint32Array([2173793,2173985,2174017,6291456,2173761,2173697,6291456,2174689,6291456,2174017,2174721,6291456,6291456,2174753,2174785,2174817]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2099521,2099105,2120705,2098369,2120801,2103361,2097985,2098433,2121377,2121473,2099169,2099873,2098401,2099393,2152609,2100033]),new Uint32Array([2132898,2163842,2163906,2133282,2132034,2131938,2137410,2132802,2132706,2164866,2133282,2160578,2165186,2165186,6291456,6291456]),new Uint32Array([10500003,10500099,10500195,10500291,10500387,10500483,10500579,10500675,10500771,10500867,10500963,10501059,10501155,10501251,10501347,10501443]),new Uint32Array([2163458,2130978,2131074,2131266,2131362,2163522,2160130,2132066,2131010,2131106,2106018,2131618,2131298,2132034,2131938,2137410]),new Uint32Array([2212961,2116993,2212993,2213025,2213057,2213089,2213121,2213153,2213185,2213217,2213249,2209633,2213281,2213313,2213345,2213377]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([2113729,2113825,2113921,2114017,2114113,2114209,2114305,2114401,2114497,2114593,2114689,2114785,2114881,2114977,2115073,2115169]),new Uint32Array([2238177,2238209,2238241,2238273,2238305,2238337,2238337,2217537,2238369,2238401,2238433,2238465,2215649,2238497,2238529,2238561]),new Uint32Array([2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905]),new Uint32Array([6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,0]),new Uint32Array([6291456,0,6291456,2145026,0,6291456,2145090,0,6291456,6291456,0,0,23068672,0,23068672,23068672]),new Uint32Array([2099233,2122017,2200673,2098113,2121537,2103201,2200705,2104033,2121857,2121953,2122401,2099649,2099969,2123009,2100129,2100289]),new Uint32Array([6291456,23068672,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,23068672,23068672,0,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0]),new Uint32Array([2187681,2187713,2187745,2187777,2187809,2187841,2187873,2187905,2187937,2187969,2188001,2188033,2188065,2188097,2188129,2188161]),new Uint32Array([0,10554498,10554562,10554626,10554690,10554754,10554818,10554882,10554946,10555010,10555074,6291456,6291456,0,0,0]),new Uint32Array([2235170,2235234,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0]),new Uint32Array([2181153,6291456,2188897,6291456,6291456,2188929,6291456,6291456,6291456,6291456,6291456,6291456,2111905,2100865,2188961,2188993]),new Uint32Array([2100833,2100897,0,0,2101569,2101697,2101825,2101953,2102081,2102209,10575617,2187041,10502177,10489601,10489697,2112289]),new Uint32Array([6291456,2172833,6291456,2172865,2172897,2172929,2172961,6291456,2172993,6291456,2173025,6291456,2173057,6291456,2173089,6291456]),new Uint32Array([6291456,0,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,0,0,23068672,6291456,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,2190721]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,23068672,6291456,6291456]),new Uint32Array([2184993,6291456,2185025,6291456,2185057,6291456,2185089,6291456,2185121,6291456,2185153,6291456,2185185,6291456,2185217,6291456]),new Uint32Array([2115265,2115361,2115457,2115553,2115649,2115745,2115841,2115937,2116033,2116129,2116225,2116321,2150658,2150722,2200225,6291456]),new Uint32Array([2168321,6291456,2168353,6291456,2168385,6291456,2168417,6291456,2168449,6291456,2168481,6291456,2168513,6291456,2168545,6291456]),new Uint32Array([23068672,23068672,23068672,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,0,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,0,6291456,0,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,2186625,0,0,6291456,6291456,2186657,2186689,2186721,2173505,0,10496067,10496163,10496259]),new Uint32Array([2178785,6291456,2178817,6291456,2178849,6291456,2178881,6291456,2178913,6291456,2178945,6291456,2178977,6291456,2179009,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0]),new Uint32Array([2097152,0,0,0,2097152,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,2197857,2197889,2197921,2197953,2197985,2198017,0,0,2198049,2198081,2198113,2198145,2198177,2198209]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2098209,2167297,2111137,6291456]),new Uint32Array([2171393,6291456,2171425,6291456,2171457,6291456,2171489,6291456,2171521,6291456,2171553,6291456,2171585,6291456,2171617,6291456]),new Uint32Array([2206753,2206785,2195457,2206817,2206849,2206881,2206913,2197153,2197153,2206945,2117857,2206977,2207009,2207041,2207073,2207105]),new Uint32Array([0,0,0,0,0,0,0,23068672,0,0,0,0,2144834,2144898,0,2144962]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,23068672]),new Uint32Array([2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,0,2105505,2098241]),new Uint32Array([6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,2202049,6291456,2202081,6291456,2202113,6291456,2202145,6291456,2202177,6291456,2202209,6291456,2202241,6291456]),new Uint32Array([10501155,10501251,10501347,10501443,10501539,10501635,10501731,10501827,10501923,10502019,2141731,2105505,2098177,2155586,2166530,0]),new Uint32Array([2102081,2102209,2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,2100833,2100737,2098337,2101441]),new Uint32Array([2146882,2146946,2147010,2147074,2147138,2147202,2147266,2147330,2146882,2146946,2147010,2147074,2147138,2147202,2147266,2147330]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([10502307,10502403,10502499,10502595,10502691,10502787,10502883,10502979,10503075,10503171,10503267,10503363,10503459,10503555,10503651,10503747]),new Uint32Array([2179937,2179969,2180001,2180033,2156545,2180065,2156577,2180097,2180129,2180161,2180193,2180225,2180257,2180289,2156737,2180321]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,0,0,0,6291456,0,0,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0]),new Uint32Array([2227682,2227746,2227810,2227874,2227938,2228002,2228066,2228130,2228194,2228258,2228322,2228386,2228450,2228514,2228578,2228642]),new Uint32Array([2105601,2169121,2108193,2170049,2181025,2181057,2112481,2108321,2108289,2181089,2170497,2100865,2181121,2173601,2173633,2173665]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2180641,6291456,6291456,6291456]),new Uint32Array([0,6291456,6291456,6291456,0,6291456,0,6291456,0,0,6291456,6291456,0,6291456,6291456,6291456]),new Uint32Array([2178273,6291456,2178305,6291456,2178337,6291456,2178369,6291456,2178401,6291456,2178433,6291456,2178465,6291456,2178497,6291456]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,6291456,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,14680064,14680064,14680064,14680064,14680064,14680064]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456]),new Uint32Array([2237377,2237409,2236225,2237441,2237473,2217441,2215521,2215553,2217473,2237505,2237537,2209697,2237569,2215585,2237601,2237633]),new Uint32Array([2221985,2165601,2165601,2165665,2165665,2222017,2222017,2165729,2165729,2158913,2158913,2158913,2158913,2097281,2097281,2105921]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2149634,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2176897,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,2176929,6291456,2176961,6291456,2176993,6291456]),new Uint32Array([2172641,6291456,2172673,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2172705,2172737,6291456,2172769,2172801,6291456]),new Uint32Array([2099173,2104196,2121667,2099395,2121763,2152258,2152322,2098946,2152386,2121859,2121955,2099333,2122051,2104324,2099493,2122147]),new Uint32Array([6291456,6291456,6291456,2145794,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,2145858,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,0,0,6291456,0]),new Uint32Array([0,2105921,2097729,0,2097377,0,0,2106017,0,2097505,2105889,2097185,2097697,2135777,2097633,2097441]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2239074,2239138,2239201,2239233,2239265,2239297,2239329,2239361,0,2239393,2239425,2239425,2239458,2239521,2239553,2209569]),new Uint32Array([14680064,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,6291456,23068672]),new Uint32Array([2108321,2108289,2113153,2098209,2180897,2180929,2180961,2111137,2098241,2108353,2170241,2170273,2180993,2105825,6291456,2105473]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2146114,6291456,6291456,6291456,0,0,0]),new Uint32Array([2105921,2105921,2105921,2222049,2222049,2130977,2130977,2130977,2130977,2160065,2160065,2160065,2160065,2097729,2097729,2097729]),new Uint32Array([2218145,2214785,2207937,2218177,2218209,2192993,2210113,2212769,2218241,2218273,2216129,2218305,2216161,2218337,2218369,2218401]),new Uint32Array([0,0,0,2156546,2156610,2156674,2156738,2156802,0,0,0,0,0,2156866,23068672,2156930]),new Uint32Array([23068672,23068672,23068672,0,0,0,0,23068672,23068672,0,0,23068672,23068672,23068672,0,0]),new Uint32Array([2213409,2213441,2213473,2213505,2213537,2213569,2213601,2213633,2213665,2195681,2213697,2213729,2213761,2213793,2213825,2213857]),new Uint32Array([2100033,2099233,2122017,2200673,2098113,2121537,2103201,2200705,2104033,2121857,2121953,2122401,2099649,2099969,2123009,2100129]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0]),new Uint32Array([2201857,6291456,2201889,6291456,2201921,6291456,2201953,6291456,2201985,6291456,2202017,6291456,2176193,2176257,23068672,23068672]),new Uint32Array([6291456,6291456,23068672,23068672,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2188193,2188225,2188257,2188289,2188321,2188353,2188385,2188417,2188449,2188481,2188513,2188545,2188577,2188609,2188641,0]),new Uint32Array([10554529,2221089,0,10502113,10562017,10537921,10538049,2221121,2221153,0,0,0,0,0,0,0]),new Uint32Array([2213889,2213921,2213953,2213985,2214017,2214049,2214081,2194177,2214113,2214145,2214177,2214209,2214241,2214273,2214305,2214337]),new Uint32Array([2166978,2167042,2099169,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2180545,6291456,6291456,6291456]),new Uint32Array([10518915,10519011,10519107,10519203,2162242,2162306,2159554,2162370,2159362,2159618,2105922,2162434,2159746,2162498,2159810,2159874]),new Uint32Array([2161730,2161794,2135586,2161858,2161922,2137186,2131810,2160290,2135170,2161986,2137954,2162050,2162114,2162178,10518723,10518819]),new Uint32Array([10506627,10506723,10506819,10506915,10507011,10507107,10507203,10507299,10507395,10507491,10507587,10507683,10507779,10507875,10507971,10508067]),new Uint32Array([6291456,23068672,23068672,23068672,0,23068672,23068672,0,0,0,0,0,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0]),new Uint32Array([2175873,2175905,2175937,2175969,2176001,2176033,2176065,2176097,2176129,2176161,2176193,2176225,2176257,2176289,2176321,2176353]),new Uint32Array([2140006,2140198,2140390,2140582,2140774,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,23068672,23068672,23068672]),new Uint32Array([2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241]),new Uint32Array([0,23068672,0,0,0,0,0,0,0,2145154,2145218,2145282,6291456,0,2145346,0]),new Uint32Array([0,0,0,0,10531458,10495395,2148545,2143201,2173473,2148865,2173505,0,2173537,0,2173569,2149121]),new Uint32Array([10537282,10495683,2148738,2148802,2148866,0,6291456,2148930,2186593,2173473,2148737,2148865,2148802,10495779,10495875,10495971]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2215425,2215457,2215489,2215521,2215553,2215585,2215617,2215649,2215681,2215713,2215745,2215777,2192033,2215809,2215841,2215873]),new Uint32Array([2242049,2242081,2242113,2242145,2242177,2242209,2242241,2242273,2215937,2242305,2242338,2242401,2242433,2242465,2242497,2216001]),new Uint32Array([10554529,2221089,0,0,10562017,10502113,10538049,10537921,2221185,10489601,10489697,10609889,10609921,2141729,2141793,10610273]),new Uint32Array([2141923,2142019,2142115,2142211,2142307,2142403,2142499,2142595,2142691,0,0,0,0,0,0,0]),new Uint32Array([0,2221185,2221217,10609857,10609857,10489601,10489697,10609889,10609921,2141729,2141793,2221345,2221377,2221409,2221441,2187105]),new Uint32Array([6291456,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,18923970,23068672,23068672,23068672,0,6291456,6291456]),new Uint32Array([2183105,6291456,2183137,6291456,2183169,6291456,2183201,6291456,2183233,6291456,2183265,6291456,2183297,6291456,2183329,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456]),new Uint32Array([2134434,2134818,2097666,2097186,2097474,2097698,2105986,2131586,2132450,2131874,2131778,2135970,2135778,2161602,2136162,2161666]),new Uint32Array([2236865,2236897,2236930,2236993,2237025,2235681,2237058,2237121,2237153,2237185,2237217,2217281,2237250,2191233,2237313,2237345]),new Uint32Array([2190049,6291456,2190081,6291456,2190113,6291456,2190145,6291456,2190177,6291456,2190209,6291456,2190241,6291456,2190273,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2101922,2102050,2102178,2102306,10498755,10498851,10498947,10499043,10499139,10499235,10499331,10499427,10499523,10489604,10489732,10489860]),new Uint32Array([2166914,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0]),new Uint32Array([2181601,2170561,2181633,2181665,2170753,2181697,2172897,2170881,2181729,2170913,2172929,2113441,2181761,2181793,2171009,2173761]),new Uint32Array([0,2105921,2097729,2106081,0,2097601,2162337,2106017,2133281,2097505,0,2097185,2097697,2135777,2097633,2097441]),new Uint32Array([6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,0,0,0,0]),new Uint32Array([2248001,2248033,2248066,2248130,2248193,2248226,2248289,2248322,2248385,2248417,2216673,2248450,2248514,2248577,2248610,2248673]),new Uint32Array([6291456,6291456,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,0,0,0]),new Uint32Array([2169729,6291456,2169761,6291456,2169793,6291456,2169825,6291456,2169857,2169889,6291456,2169921,6291456,2143329,6291456,2098305]),new Uint32Array([2162178,2163202,2163266,2135170,2136226,2161986,2137954,2159426,2159490,2163330,2159554,2163394,2159682,2139522,2136450,2159746]),new Uint32Array([2173953,2173985,0,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2174209,2174241,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,4271169,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2174273]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,0,0,0,0,0,0,0,6291456,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,2190785,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2189793,6291456,2189825,6291456,2189857,6291456,2189889,6291456,2189921,6291456,2189953,6291456,2189985,6291456,2190017,6291456]),new Uint32Array([2105601,2112289,2108193,2112481,2112577,0,2098305,2108321,2108289,2100865,2113153,2108481,2113345,0,2098209,2111137]),new Uint32Array([2172129,6291456,2172161,6291456,2172193,6291456,2172225,6291456,2172257,6291456,2172289,6291456,2172321,6291456,2172353,6291456]),new Uint32Array([2214753,6291456,2214785,6291456,6291456,2214817,2214849,2214881,2214913,2214945,2214977,2215009,2215041,2215073,2194401,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,6291456,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([0,0,0,0,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([10610305,10610337,10575617,2221761,10610401,10610433,10502177,0,10610465,10610497,10610529,10610561,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,23068672,0,0,0,0,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2187105,2187137,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2199393,2199425,2199457,2199489,2199521,2199553,2199585,2199617,2199649,2199681,2199713,2199745,2199777,2199809,2199841,0]),new Uint32Array([2217249,2217281,2217313,2217345,2217377,2217409,2217441,2217473,2215617,2217505,2217537,2217569,2214753,2217601,2217633,2217665]),new Uint32Array([2170273,2170305,6291456,2170337,2170369,6291456,2170401,2170433,2170465,6291456,6291456,6291456,2170497,2170529,6291456,2170561]),new Uint32Array([2188673,6291456,2188705,2188737,2188769,6291456,6291456,2188801,6291456,2188833,6291456,2188865,6291456,2180929,2181505,2180897]),new Uint32Array([10489988,10490116,10490244,10490372,10490500,10490628,10490756,10490884,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2147393,2147457,2147521,2147585,2147649,2147713,2147777,2147841]),new Uint32Array([23068672,23068672,0,23068672,23068672,0,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0]),new Uint32Array([2241153,2241185,2241217,2215809,2241250,2241313,2241345,2241377,2217921,2241377,2241409,2215873,2241441,2241473,2241505,2241537]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2220417,2220417,2220449,2220449,2220481,2220481,2220513,2220513,2220545,2220545,2220577,2220577,2220609,2220609,2220641,2220641]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,2144002,0,6291456,6291456,0,0,6291456,6291456,6291456]),new Uint32Array([2167105,2167137,2167169,2167201,2167233,2167265,2167297,2167329,2167361,2167393,2167425,2167457,2167489,2167521,2167553,2167585]),new Uint32Array([10575521,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193]),new Uint32Array([2234146,2234210,2234274,2234338,2234402,2234466,2234530,2234594,2234658,2234722,2234786,2234850,2234914,2234978,2235042,2235106]),new Uint32Array([0,0,0,0,0,0,0,2180577,0,0,0,0,0,2180609,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,0,0,6291456,6291456]),new Uint32Array([2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2242529,2242561,2242593,2242625,2242657,2242689,2242721,2242753,2207937,2218177,2242785,2242817,2242849,2242882,2242945,2242977]),new Uint32Array([2118049,2105345,2118241,2105441,2118433,2118529,2118625,2118721,2118817,2200257,2200289,2191809,2200321,2200353,2200385,2200417]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0]),new Uint32Array([2185505,6291456,2185537,6291456,2185569,6291456,2185601,6291456,2185633,6291456,2185665,6291456,2185697,6291456,2185729,6291456]),new Uint32Array([2231970,2232034,2232098,2232162,2232226,2232290,2232354,2232418,2232482,2232546,2232610,2232674,2232738,2232802,2232866,2232930]),new Uint32Array([2218625,2246402,2246466,2246530,2246594,2246657,2246689,2246689,2218657,2219681,2246721,2246753,2246785,2246818,2246881,2208481]),new Uint32Array([2197025,2197057,2197089,2197121,2197153,2197185,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2219137,2216961,2219169,2219201,2219233,2219265,2219297,2217025,2215041,2219329,2217057,2219361,2217089,2219393,2197153,2219426]),new Uint32Array([23068672,23068672,23068672,0,0,0,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,0,0]),new Uint32Array([2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713]),new Uint32Array([2243522,2243585,2243617,2243649,2243681,2210113,2243713,2243746,2243810,2243874,2243937,2243970,2244033,2244065,2244097,2244129]),new Uint32Array([2178017,6291456,2178049,6291456,2178081,6291456,2178113,6291456,2178145,6291456,2178177,6291456,2178209,6291456,2178241,6291456]),new Uint32Array([10553858,2165314,10518722,6291456,10518818,0,10518914,2130690,10519010,2130786,10519106,2130882,10519202,2165378,10554050,2165506]),new Uint32Array([0,0,2135491,2135587,2135683,2135779,2135875,2135971,2135971,2136067,2136163,2136259,2136355,2136355,2136451,2136547]),new Uint32Array([23068672,23068672,23068672,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2220033,2220033,2220065,2220065,2220065,2220065,2220097,2220097,2220097,2220097,2220129,2220129,2220129,2220129,2220161,2220161]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,23068672,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2100897,2100898,2100899,2150018,2100865,2100866,2100867,2100868,2150082,2108481,2109858,2109859,2105569,2105505,2098241,2105601]),new Uint32Array([2097217,2097505,2097505,2097505,2097505,2165570,2165570,2165634,2165634,2165698,2165698,2097858,2097858,0,0,2097152]),new Uint32Array([23068672,6291456,23068672,23068672,23068672,6291456,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,23068672,23068672]),new Uint32Array([23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([10503843,10503939,10504035,10504131,10504227,10504323,10504419,10504515,10504611,10504707,10504803,10504899,10504995,10491140,10491268,0]),new Uint32Array([2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953,2173985,2173761,2174017,2174049]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2134145,2097153,2134241,2105953,2132705,2130977,2160065,2131297,2162049,2133089,2160577,2133857,2235297,2220769,2235329,2235361]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2222401,2222433,2222465,10531394,2222497,2222529,2222561,0,2222593,2222625,2222657,2222689,2222721,2222753,2222785,0]),new Uint32Array([2184481,6291456,2184513,6291456,2184545,6291456,2184577,6291456,2184609,6291456,2184641,6291456,2184673,6291456,2184705,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,0,0,0,0,0,0,0,0,0]),new Uint32Array([2105570,2156034,2126947,2156098,2153666,2127043,2127139,2156162,0,2127235,2156226,2156290,2156354,2156418,2127331,2127427]),new Uint32Array([2215905,2207041,2153185,2241569,2241601,2241633,2241665,2241697,2241730,2241793,2241825,2241857,2241889,2241921,2241954,2242017]),new Uint32Array([2203777,6291456,2203809,6291456,2203841,6291456,2203873,6291456,2203905,6291456,2173121,2180993,2181249,2203937,2181313,0]),new Uint32Array([2168577,6291456,2168609,6291456,2168641,6291456,2168673,6291456,2168705,6291456,2168737,6291456,2168769,6291456,2168801,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,23068672,23068672,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,0,23068672,23068672,23068672,0,0]),new Uint32Array([2210113,2195521,2210145,2210177,2210209,2210241,2210273,2210305,2210337,2210369,2210401,2210433,2210465,2210497,2210529,2210561]),new Uint32Array([6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([2228706,2228770,2228834,2228898,2228962,2229026,2229090,2229154,2229218,2229282,2229346,2229410,2229474,2229538,2229602,2229666]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,18874368,18874368,18874368,0,0]),new Uint32Array([2133089,2133281,2133281,2133281,2133281,2160577,2160577,2160577,2160577,2097441,2097441,2097441,2097441,2133857,2133857,2133857]),new Uint32Array([6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2173825,2153473,2173857,2173889,2173921,2173953,2173985,2174017,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233089]),new Uint32Array([2178529,6291456,2178561,6291456,2178593,6291456,2178625,6291456,2178657,6291456,2178689,6291456,2178721,6291456,2178753,6291456]),new Uint32Array([2221025,2221025,2221057,2221057,2159329,2159329,2159329,2159329,2097217,2097217,2158914,2158914,2158978,2158978,2159042,2159042]),new Uint32Array([2208161,2208193,2208225,2208257,2194433,2208289,2208321,2208353,2208385,2208417,2208449,2208481,2208513,2208545,2208577,2208609]),new Uint32Array([2169217,6291456,2169249,6291456,2169281,6291456,2169313,6291456,2169345,6291456,2169377,6291456,2169409,6291456,2169441,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456]),new Uint32Array([2133187,2133283,2133283,2133379,2133475,2133571,2133667,2133667,2133763,2133859,2133955,2134051,2134147,2134147,2134243,2134339]),new Uint32Array([2197697,2114113,2114209,2197729,2197761,2114305,2197793,2114401,2114497,2197825,2114593,2114689,2114785,2114881,2114977,0]),new Uint32Array([2193089,2193121,2193153,2193185,2117665,2117569,2193217,2193249,2193281,2193313,2193345,2193377,2193409,2193441,2193473,2193505]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2184225,6291456,2184257,6291456,2184289,6291456,2184321,6291456,2184353,6291456,2184385,6291456,2184417,6291456,2184449,6291456]),new Uint32Array([2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2100833,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2098657,2098049,2200737,2123489,2123681,2200769,2098625,2100321,2098145,2100449,2098017,2098753,2200801,2200833,2200865,0]),new Uint32Array([23068672,23068672,23068672,0,0,0,0,0,0,0,0,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0]),new Uint32Array([2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,0,2098241,2108353,2108417,2105825,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2181153,2105505,2181185,2167617,2180993]),new Uint32Array([2160002,2160066,2160130,2160194,2160258,2132066,2131010,2131106,2106018,2131618,2160322,2131298,2132034,2131938,2137410,2132226]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,6291456]),new Uint32Array([2183617,6291456,2183649,6291456,2183681,6291456,2183713,6291456,2183745,6291456,2183777,6291456,2183809,6291456,2183841,6291456]),new Uint32Array([0,6291456,6291456,0,6291456,0,0,6291456,6291456,0,6291456,0,0,6291456,0,0]),new Uint32Array([2250977,2251009,2251041,2251073,2195009,2251106,2251169,2251201,2251233,2251265,2251297,2251330,2251394,2251457,2251489,2251521]),new Uint32Array([2205729,2205761,2205793,2205825,2205857,2205889,2205921,2205953,2205985,2206017,2206049,2206081,2206113,2206145,2206177,2206209]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2143170,2168993,6291456,2169025,6291456,2169057,6291456,2169089,6291456,2143234,2169121,6291456,2169153,6291456,2169185,6291456]),new Uint32Array([23068672,23068672,2190689,6291456,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2248706,2248769,2248801,2248833,2248865,2248897,2248929,2248962,2249026,2249090,2249154,2240705,2249217,2249249,2249281,2249313]),new Uint32Array([10485857,6291456,6291456,6291456,6291456,6291456,6291456,6291456,10495394,6291456,2098209,6291456,6291456,2097152,6291456,10531394]),new Uint32Array([0,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([14680064,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2173985,2173953,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889]),new Uint32Array([6291456,2186977,6291456,6291456,6291456,6291456,6291456,10537858,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2209601,2209633,2209665,2209697,2209729,2209761,2209793,2209825,2209857,2209889,2209921,2209953,2209985,2210017,2210049,2210081]),new Uint32Array([10501539,10501635,10501731,10501827,10501923,10502019,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905]),new Uint32Array([2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953,2173985,2174017,2174017,2174049]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2194561,2194593,2194625,2119777,2119873,2194657,2194689,2194721,2194753,2194785,2194817,2194849,2194881,2194913,2194945,2194977]),new Uint32Array([2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569]),new Uint32Array([2222818,2222882,2222946,2223010,2223074,2223138,2223202,2223266,2223330,2223394,2223458,2223522,2223586,2223650,2223714,2223778]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672]),new Uint32Array([0,2179553,2179585,2179617,2179649,2144001,2179681,2179713,2179745,2179777,2179809,2156705,2179841,2156833,2179873,2179905]),new Uint32Array([6291456,23068672,6291456,2145602,23068672,23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,6291456,0,0]),new Uint32Array([2196513,2196545,2196577,2196609,2196641,2196673,2196705,2196737,2196769,2196801,2196833,2196865,2196897,2196929,2196961,2196993]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2177281,6291456,2177313,6291456,2177345,6291456,2177377,6291456,2177409,6291456,2177441,6291456,2177473,6291456,2177505,6291456]),new Uint32Array([2187137,2221473,2221505,2221537,2221569,6291456,6291456,10610209,10610241,10537986,10537986,10537986,10537986,10609857,10609857,10609857]),new Uint32Array([2243009,2243041,2216033,2243074,2243137,2243169,2243201,2219617,2243233,2243265,2243297,2243329,2243362,2243425,2243457,2243489]),new Uint32Array([10485857,10485857,10485857,10485857,10485857,10485857,10485857,10485857,10485857,10485857,10485857,2097152,4194304,4194304,0,0]),new Uint32Array([2143042,6291456,2143106,2143106,2168833,6291456,2168865,6291456,6291456,2168897,6291456,2168929,6291456,2168961,6291456,2143170]),new Uint32Array([6291456,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2204193,2204225,2204257,2204289,2204321,2204353,2204385,2204417,2204449,2204481,2204513,2204545,2204577,2204609,2204641,2204673]),new Uint32Array([2202753,6291456,2202785,6291456,2202817,6291456,2202849,6291456,2202881,6291456,2202913,6291456,2202945,6291456,2202977,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321]),new Uint32Array([2147394,2147458,2147522,2147586,2147650,2147714,2147778,2147842,2147394,2147458,2147522,2147586,2147650,2147714,2147778,2147842]),new Uint32Array([2253313,2253346,2253409,2253441,2253473,2253505,2253537,2253569,2253601,2253634,2219393,2253697,2253729,2253761,2253793,2253825]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([2162562,2162626,2131362,2162690,2159938,2160002,2162754,2162818,2160130,2162882,2160194,2160258,2160834,2160898,2161026,2161090]),new Uint32Array([2175361,2175393,2175425,2175457,2175489,2175521,2175553,2175585,2175617,2175649,2175681,2175713,2175745,2175777,2175809,2175841]),new Uint32Array([2253858,2253921,2253954,2254018,2254082,2196737,2254145,2196865,2254177,2254209,2254241,2254273,2197025,2254306,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2202113,2204129,2188705,2204161]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([2173985,2174017,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233089,2173697,2173761,2173793,2174113,2173985,2173953]),new Uint32Array([2101569,2101697,2101825,2101953,2102081,2102209,2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209]),new Uint32Array([2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,0,2108417,0,2111713,2100897,2111905]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0]),new Uint32Array([2175425,2175489,2175809,2175905,2175937,2175937,2176193,2176417,2180865,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,2143298,2143298,2143298,2143362,2143362,2143362,2143426,2143426,2143426,2171105,6291456,2171137]),new Uint32Array([2120162,2120258,2151618,2151682,2151746,2151810,2151874,2151938,2152002,2120035,2120131,2120227,2152066,2120323,2152130,2120419]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2195361,2142433,2236065,2236097,2236129,2236161,2118241,2117473,2236193,2236225,2236257,2236289,0,0,0,0]),new Uint32Array([2189281,6291456,2189313,6291456,2189345,6291456,2189377,6291456,2189409,6291456,2189441,6291456,2189473,6291456,2189505,6291456]),new Uint32Array([6291456,6291456,2145922,6291456,6291456,6291456,6291456,2145986,6291456,6291456,6291456,6291456,2146050,6291456,6291456,6291456]),new Uint32Array([2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,10502113,10562017,10610401,10502177,10610433,10538049]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,2186401,0,2186433,0,2186465,0,2186497]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,23068672,23068672,23068672]),new Uint32Array([0,0,2198241,2198273,2198305,2198337,2198369,2198401,0,0,2198433,2198465,2198497,0,0,0]),new Uint32Array([6291456,0,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,0,6291456,0,23068672,23068672,23068672,23068672,23068672,23068672,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,0,0,23068672,6291456,23068672,23068672]),new Uint32Array([0,2105921,2097729,0,2097377,0,0,2106017,2133281,2097505,2105889,0,2097697,2135777,2097633,2097441]),new Uint32Array([2197889,2197921,2197953,2197985,2198017,2198049,2198081,2198113,2198145,2198177,2198209,2198241,2198273,2198305,2198337,2198369]),new Uint32Array([2132514,2132610,2160386,2133090,2133186,2160450,2160514,2133282,2160578,2133570,2106178,2160642,2133858,2160706,2160770,2134146]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,0,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,23068672,23068672,6291456,23068672,23068672,6291456,23068672,0,0,0,0,0,0,0,0]),new Uint32Array([2184737,6291456,2184769,6291456,2184801,6291456,2184833,6291456,2184865,6291456,2184897,6291456,2184929,6291456,2184961,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,6291456,6291456,6291456,6291456,0,6291456]),new Uint32Array([6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,23068672,23068672,23068672,6291456,23068672,23068672,23068672,23068672,23068672,0,0]),new Uint32Array([6291456,6291456,6291456,2186753,6291456,6291456,6291456,6291456,2186785,2186817,2186849,2173569,2186881,10496355,10495395,10575521]),new Uint32Array([0,0,2097729,0,0,0,0,2106017,0,2097505,0,2097185,0,2135777,2097633,2097441]),new Uint32Array([2189537,6291456,2189569,6291456,2189601,6291456,2189633,6291456,2189665,6291456,2189697,6291456,2189729,6291456,2189761,6291456]),new Uint32Array([2202497,6291456,2202529,6291456,2202561,6291456,2202593,6291456,2202625,6291456,2202657,6291456,2202689,6291456,2202721,6291456]),new Uint32Array([2245217,2218369,2245249,2245282,2245345,2245377,2245410,2245474,2245537,2245569,2245601,2245633,2245665,2245665,2245697,2245729]),new Uint32Array([6291456,0,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,0,0,0,0,0,0,23068672,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,6291456,23068672,6291456,23068672,6291456,6291456,6291456,6291456,23068672,23068672]),new Uint32Array([0,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0]),new Uint32Array([2097281,2105921,2097729,2106081,2097377,2097601,2162337,2106017,2133281,2097505,0,2097185,2097697,2135777,2097633,2097441]),new Uint32Array([2176641,6291456,2176673,6291456,2176705,6291456,2176737,6291456,2176769,6291456,2176801,6291456,2176833,6291456,2176865,6291456]),new Uint32Array([2174145,2174177,2149057,2233089,2173697,2173761,2173793,2174113,2173985,2173953,2174369,2174369,0,0,2100833,2100737]),new Uint32Array([2116513,2190817,2190849,2190881,2190913,2190945,2116609,2190977,2191009,2191041,2191073,2117185,2191105,2191137,2191169,2191201]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,6291456,6291456,6291456]),new Uint32Array([0,0,0,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456]),new Uint32Array([2167617,2167649,2167681,2167713,2167745,2167777,2167809,6291456,2167841,2167873,2167905,2167937,2167969,2168001,2168033,4240130]),new Uint32Array([2165122,2163970,2164034,2164098,2164162,2164226,2164290,2164354,2164418,2164482,2164546,2133122,2134562,2132162,2132834,2136866]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,2186209,2186241,2186273,2186305,2186337,2186369,0,0]),new Uint32Array([2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,14680064,14680064,14680064,14680064,14680064]),new Uint32Array([0,0,23068672,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456]),new Uint32Array([0,10537921,10610689,10610273,10610497,10610529,10610305,10610721,10489601,10489697,10610337,10575617,10554529,2221761,2197217,10496577]),new Uint32Array([2105473,2105569,2105601,2112289,0,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441]),new Uint32Array([2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481]),new Uint32Array([2125346,2153410,2153474,2127394,2153538,2153602,2153666,2153730,2105507,2105476,2153794,2153858,2153922,2153986,2154050,2105794]),new Uint32Array([2200449,2119681,2200481,2153313,2199873,2199905,2199937,2200513,2200545,2200577,2200609,2119105,2119201,2119297,2119393,2119489]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2175777,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2222273,2197217,2221473,2221505,2221089,2222305,2200865,2099681,2104481,2222337,2099905,2120737,2222369,2103713,2100225,2098785]),new Uint32Array([2201377,6291456,2201409,6291456,2201441,6291456,2201473,6291456,2201505,6291456,2201537,6291456,2201569,6291456,6291456,23068672]),new Uint32Array([2174081,2174113,2174145,2174177,2149057,2233057,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793]),new Uint32Array([2200897,6291456,2200929,6291456,2200961,6291456,2200993,6291456,2201025,6291456,2180865,6291456,2201057,6291456,2201089,6291456]),new Uint32Array([0,0,0,0,0,23068672,23068672,0,6291456,6291456,6291456,0,0,0,0,0]),new Uint32Array([2161154,2161410,2138658,2161474,2161538,2097666,2097186,2097474,2162946,2132450,2163010,2163074,2136162,2163138,2161666,2161730]),new Uint32Array([2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953]),new Uint32Array([0,0,0,0,0,0,23068672,23068672,0,0,0,0,2145410,2145474,0,6291456]),new Uint32Array([2244161,2216065,2212769,2244193,2244225,2244257,2244290,2244353,2244385,2244417,2244449,2218273,2244481,2244514,2244577,2244609]),new Uint32Array([2125730,2125699,2125795,2125891,2125987,2154114,2154178,2154242,2154306,2154370,2154434,2154498,2126082,2126178,2126274,2126083]),new Uint32Array([2237665,2237697,2237697,2237697,2237730,2237793,2237825,2237857,2237890,2237953,2237985,2238017,2238049,2238081,2238113,2238145]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2150146,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,0,23068672,23068672,0,0,23068672,23068672,23068672,0,0]),new Uint32Array([2214369,2238593,2238625,2238657,2238689,2238721,2238753,2238785,2238817,2238850,2238913,2238945,2238977,2235457,2239009,2239041]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([2252066,2252130,2252193,2252225,2252257,2252290,2252353,2252385,2252417,2252449,2252481,2252513,2252545,2252578,2252641,2252673]),new Uint32Array([2197697,2114113,2114209,2197729,2197761,2114305,2197793,2114401,2114497,2197825,2114593,2114689,2114785,2114881,2114977,2197857]),new Uint32Array([2224866,2224930,2224994,2225058,2225122,2225186,2225250,2225314,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2219490,2219554,2219617,2219649,2219681,2219714,2219778,2219842,2219905,2219937,0,0,0,0,0,0]),new Uint32Array([6291456,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456]),new Uint32Array([2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289]),new Uint32Array([2174081,2174113,2174145,2174177,2149057,2233089,2173697,2173761,2173793,2174113,2173985,2173953,2148481,2173601,2173633,2173665]),new Uint32Array([2220161,2220161,2220193,2220193,2220193,2220193,2220225,2220225,2220225,2220225,2220257,2220257,2220257,2220257,2220289,2220289]),new Uint32Array([2192673,2192705,2192737,2192769,2192801,2192833,2192865,2118049,2192897,2117473,2117761,2192929,2192961,2192993,2193025,2193057]),new Uint32Array([2179297,6291456,2179329,6291456,2179361,6291456,2179393,6291456,2179425,6291456,2179457,6291456,2179489,6291456,2179521,6291456]),new Uint32Array([6291456,6291456,6291456,23068672,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0]),new Uint32Array([2235745,2235777,2193633,2235809,2235841,2235873,2235905,2235937,2235969,2116513,2116705,2236001,2200513,2199905,2200545,2236033]),new Uint32Array([2113153,2108481,2113345,2113441,2232993,2233025,0,0,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761]),new Uint32Array([2170593,6291456,2170625,6291456,2170657,6291456,2170689,2170721,6291456,2170753,6291456,6291456,2170785,6291456,2170817,2170849]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2166786,2166850,0,0,0,0]),new Uint32Array([23068672,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,10575617,2187041,10502177,10489601,10489697,0]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2134562,2132162,2132834,2136866,2136482,2164610,2164674,2164738,2164802,2132802,2132706,2164866,2132898,2164930,2164994,2165058]),new Uint32Array([6291456,6291456,2098337,2101441,10531458,2153473,6291456,6291456,10531522,2100737,2108193,6291456,2106499,2106595,2106691,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,0]),new Uint32Array([2233122,2233186,2233250,2233314,2233378,2233442,2233506,2233570,2233634,2233698,2233762,2233826,2233890,2233954,2234018,2234082]),new Uint32Array([23068672,6291456,23068672,23068672,23068672,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2205217,2205249,2205281,2205313,2205345,2205377,2205409,2205441,2205473,2205505,2205537,2205569,2205601,2205633,2205665,2205697]),new Uint32Array([6291456,0,6291456,0,0,0,6291456,6291456,6291456,6291456,0,0,23068672,6291456,23068672,23068672]),new Uint32Array([2173601,2173761,2174081,2173569,2174241,2174113,2173953,6291456,2174305,6291456,2174337,6291456,2174369,6291456,2174401,6291456]),new Uint32Array([6291456,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([2152450,2152514,2099653,2104452,2099813,2122243,2099973,2152578,2122339,2122435,2122531,2122627,2122723,2104580,2122819,2152642]),new Uint32Array([2236385,2236417,2236449,2236482,2236545,2215425,2236577,2236609,2236641,2236673,2215457,2236705,2236737,2236770,2215489,2236833]),new Uint32Array([2163394,2159746,2163458,2131362,2163522,2160130,2163778,2132226,2163842,2132898,2163906,2161410,2138658,2097666,2136162,2163650]),new Uint32Array([2218721,2246913,2246946,2216385,2247010,2247074,2215009,2247137,2247169,2216481,2247201,2247233,2247266,2247330,2247330,0]),new Uint32Array([2129730,2129762,2129858,2129731,2129827,2156482,2156482,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,0,0,0,0,6291456,0,0]),new Uint32Array([2203969,2204001,2181377,2204033,2204065,6291456,2204097,6291456,0,0,0,0,0,0,0,0]),new Uint32Array([2169473,6291456,2169505,6291456,2169537,6291456,2169569,6291456,2169601,6291456,2169633,6291456,2169665,6291456,2169697,6291456]),new Uint32Array([2141542,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2220801,2220801,2220801,2220801,2220833,2220833,2220865,2220865,2220865,2220865,2220897,2220897,2220897,2220897,2139873,2139873]),new Uint32Array([0,0,0,0,0,23068672,23068672,0,0,0,0,0,0,0,6291456,0]),new Uint32Array([2214849,2218433,2218465,2218497,2218529,2218561,2214881,2218593,2218625,2218657,2218689,2218721,2218753,2216545,2218785,2218817]),new Uint32Array([23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0,6291456]),new Uint32Array([2136482,2164610,2164674,2164738,2164802,2132802,2132706,2164866,2132898,2164930,2164994,2165058,2165122,2132802,2132706,2164866]),new Uint32Array([2207649,2207681,2207713,2207745,2207777,2207809,2207841,2207873,2207905,2207937,2207969,2208001,2208033,2208065,2208097,2208129]),new Uint32Array([2123683,2105092,2152706,2123779,2105220,2152770,2100453,2098755,2123906,2124002,2124098,2124194,2124290,2124386,2124482,2124578]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,6291456,0,0,0,0,0,0,0,10485857]),new Uint32Array([6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([10508163,10508259,10508355,10508451,2200129,2200161,2192737,2200193,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2203553,6291456,2203585,6291456,6291456,6291456,2203617,6291456,2203649,6291456,2203681,6291456,2203713,6291456,2203745,6291456]),new Uint32Array([18884449,18884065,23068672,18884417,18884034,18921185,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,18874368]),new Uint32Array([2247393,2247426,2247489,2247521,2247553,2247586,2247649,2247681,2247713,2247745,2247777,2247810,2247873,2247905,2247937,2247969]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,23068672]),new Uint32Array([2134145,2097153,2134241,0,2132705,2130977,2160065,2131297,0,2133089,2160577,2133857,2235297,0,2235329,0]),new Uint32Array([2182593,6291456,2182625,6291456,2182657,6291456,2182689,6291456,2182721,6291456,2182753,6291456,2182785,6291456,2182817,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2102402,2102403,6291456,2110050]),new Uint32Array([2149890,2108323,2149954,6291456,2113441,6291456,2149057,6291456,2113441,6291456,2105473,2167265,2111137,2105505,6291456,2108353]),new Uint32Array([2219105,2219137,2195233,2251554,2251617,2251649,2251681,2251713,2251746,2251810,2251873,2251905,2251937,2251970,2252033,2219169]),new Uint32Array([2203009,6291456,2203041,6291456,2203073,6291456,2203105,6291456,2203137,6291456,2203169,6291456,2203201,6291456,2203233,6291456]),new Uint32Array([2128195,2128291,2128387,2128483,2128579,2128675,2128771,2128867,2128963,2129059,2129155,2129251,2129347,2129443,2129539,2129635]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2140964,2141156,2140966,2141158,2141350]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2225378,2225442,2225506,2225570,2225634,2225698,2225762,2225826,2225890,2225954,2226018,2226082,2226146,2226210,2226274,2226338]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417]),new Uint32Array([2108353,2108417,0,2105601,2108193,2157121,2157313,2157377,2157441,2100897,6291456,2108419,2173953,2173633,2173633,2173953]),new Uint32Array([2111713,2173121,2111905,2098177,2173153,2173185,2173217,2113153,2113345,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,2190753]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,2197249,6291456,2117377,2197281,2197313,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,0,0,0,0,0,0,23068672,0,0,0,0,0,6291456,6291456,6291456]),new Uint32Array([2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0]),new Uint32Array([0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,23068672,23068672,23068672]),new Uint32Array([2173281,6291456,2173313,6291456,2173345,6291456,2173377,6291456,0,0,10532546,6291456,6291456,6291456,10562017,2173441]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,0,0]),new Uint32Array([23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2159426,2159490,2159554,2159362,2159618,2159682,2139522,2136450,2159746,2159810,2159874,2130978,2131074,2131266,2131362,2159938]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2203233,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2203265,6291456,2203297,6291456,2203329,2203361,6291456]),new Uint32Array([6291456,6291456,2148418,2148482,2148546,0,6291456,2148610,2186529,2186561,2148417,2148545,2148482,10495778,2143969,10495778]),new Uint32Array([2134146,2139426,2160962,2134242,2161218,2161282,2161346,2161410,2138658,2134722,2134434,2134818,2097666,2097346,2097698,2105986]),new Uint32Array([2198881,2198913,2198945,2198977,2199009,2199041,2199073,2199105,2199137,2199169,2199201,2199233,2199265,2199297,2199329,2199361]),new Uint32Array([0,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456]),new Uint32Array([10610561,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193]),new Uint32Array([2183873,6291456,2183905,6291456,2183937,6291456,2183969,6291456,2184001,6291456,2184033,6291456,2184065,6291456,2184097,6291456]),new Uint32Array([2244642,2244706,2244769,2244801,2218305,2244833,2244865,2244897,2244929,2244961,2244993,2245026,2245089,2245122,2245185,0]),new Uint32Array([6291456,6291456,2116513,2116609,2116705,2116801,2199873,2199905,2199937,2199969,2190913,2200001,2200033,2200065,2200097,2191009]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,2180673,2180705,2180737,2180769,2180801,2180833,0,0]),new Uint32Array([2098081,2099521,2099105,2120705,2098369,2120801,2103361,2097985,2098433,2121377,2121473,2099169,2099873,2098401,2099393,2152609]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2150402]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,2145666,2145730,6291456,6291456]),new Uint32Array([2173921,2173953,2173985,2173761,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233057,2148481,2173601,2173633,2173665]),new Uint32Array([2187073,6291456,6291456,6291456,6291456,2098241,2098241,2108353,2100897,2111905,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2102404,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,2100612,6291456,6291456,6291456,6291456,6291456,6291456,6291456,10485857]),new Uint32Array([2149057,2233057,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889]),new Uint32Array([2217697,2217729,2217761,2217793,2217825,2217857,2217889,2217921,2217953,2215873,2217985,2215905,2218017,2218049,2218081,2218113]),new Uint32Array([2211233,2218849,2216673,2218881,2218913,2218945,2218977,2219009,2216833,2219041,2215137,2219073,2216865,2209505,2219105,2216897]),new Uint32Array([2240097,2240129,2240161,2240193,2240225,2240257,2240289,2240321,2240353,2240386,2240449,2240481,2240513,2240545,2207905,2240578]),new Uint32Array([6291456,6291456,2202273,6291456,2202305,6291456,2202337,6291456,2202369,6291456,2202401,6291456,2202433,6291456,2202465,6291456]),new Uint32Array([0,23068672,23068672,18923394,23068672,18923458,18923522,18884099,18923586,18884195,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2201121,6291456,2201153,6291456,2201185,6291456,2201217,6291456,2201249,6291456,2201281,6291456,2201313,6291456,2201345,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456]),new Uint32Array([2211041,2211073,2211105,2211137,2211169,2211201,2211233,2211265,2211297,2211329,2211361,2211393,2211425,2211457,2211489,2211521]),new Uint32Array([2181825,6291456,2181857,6291456,2181889,6291456,2181921,6291456,2181953,6291456,2181985,6291456,2182017,6291456,2182049,6291456]),new Uint32Array([2162337,2097633,2097633,2097633,2097633,2132705,2132705,2132705,2132705,2097153,2097153,2097153,2097153,2133089,2133089,2133089]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,2148545,6291456,2173473,6291456,2148865,6291456,2173505,6291456,2173537,6291456,2173569,6291456,2149121,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,0,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0]),new Uint32Array([2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953,2173985,2174017,2174017,2174049,2174081,2174113]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2207137,2207169,2207201,2207233,2207265,2207297,2207329,2207361,2207393,2207425,2207457,2207489,2207521,2207553,2207585,2207617]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,6291456,6291456,0,23068672,23068672,0,0,0,0,0,0]),new Uint32Array([2198401,2198433,2198465,2198497,0,2198529,2198561,2198593,2198625,2198657,2198689,2198721,2198753,2198785,2198817,2198849]),new Uint32Array([2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,0,0]),new Uint32Array([2216385,2118721,2216417,2216449,2216481,2216513,2216545,2211233,2216577,2216609,2216641,2216673,2216705,2216737,2216737,2216769]),new Uint32Array([2216801,2216833,2216865,2216897,2216929,2216961,2216993,2215169,2217025,2217057,2217089,2217121,2217154,2217217,0,0]),new Uint32Array([2210593,2191809,2210625,2210657,2210689,2210721,2210753,2210785,2210817,2210849,2191297,2210881,2210913,2210945,2210977,2211009]),new Uint32Array([0,0,2105825,0,0,2111905,2105473,0,0,2112289,2108193,2112481,2112577,0,2098305,2108321]),new Uint32Array([0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,2097153,2134241,0,2132705,0,0,2131297,0,2133089,0,2133857,0,2220769,0,2235361]),new Uint32Array([14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,6291456,6291456,14680064]),new Uint32Array([23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0]),new Uint32Array([2171873,6291456,2171905,6291456,2171937,6291456,2171969,6291456,2172001,6291456,2172033,6291456,2172065,6291456,2172097,6291456]),new Uint32Array([2220929,2220929,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2133857,2134145,2134145,2134145,2134145,2134241,2134241,2134241,2134241,2105889,2105889,2105889,2105889,2097185,2097185,2097185]),new Uint32Array([2173697,2173761,2173793,2174113,2173985,2173953,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,0,10499619,10499715,10499811,10499907]),new Uint32Array([0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,0,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,0,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,2144322,2144386,2144450,2144514,2144578,2144642,2144706,2144770]),new Uint32Array([23068672,23068672,23068672,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456]),new Uint32Array([2113153,2108481,2113345,2113441,2098209,2111137,0,2098241,2108353,2108417,2105825,0,0,2111905,2105473,2105569]),new Uint32Array([2236321,2236353,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2152194,2121283,2103684,2103812,2097986,2098533,2097990,2098693,2098595,2098853,2099013,2103940,2121379,2121475,2121571,2104068]),new Uint32Array([2206241,2206273,2206305,2206337,2206369,2206401,2206433,2206465,2206497,2206529,2206561,2206593,2206625,2206657,2206689,2206721]),new Uint32Array([6291456,6291456,6291456,6291456,16777216,16777216,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,23068672,23068672,10538818,10538882,6291456,6291456,2150338]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2214369,2214401,2214433,2214465,2214497,2214529,2214561,2214593,2194977,2214625,2195073,2214657,2214689,2214721,6291456,6291456]),new Uint32Array([2097152,2097152,2097152,2097152,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2182081,6291456,2182113,6291456,2182145,6291456,2182177,6291456,2182209,6291456,2182241,6291456,2182273,6291456,2182305,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2146881,2146945,2147009,2147073,2147137,2147201,2147265,2147329]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,23068672,23068672]),new Uint32Array([0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2122915,2123011,2123107,2104708,2123203,2123299,2123395,2100133,2104836,2100290,2100293,2104962,2104964,2098052,2123491,2123587]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456]),new Uint32Array([6291456,2171169,6291456,2171201,6291456,2171233,6291456,2171265,6291456,2171297,6291456,2171329,6291456,6291456,2171361,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,2148994,2149058,2149122,0,6291456,2149186,2186945,2173537,2148993,2149121,2149058,10531458,10496066,0]),new Uint32Array([2195009,2195041,2195073,2195105,2195137,2195169,2195201,2195233,2195265,2195297,2195329,2195361,2195393,2195425,2195457,2195489]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,0,0,6291456,6291456]),new Uint32Array([2182849,6291456,2182881,6291456,2182913,6291456,2182945,6291456,2182977,6291456,2183009,6291456,2183041,6291456,2183073,6291456]),new Uint32Array([2211553,2210081,2211585,2211617,2211649,2211681,2211713,2211745,2211777,2211809,2209569,2211841,2211873,2211905,2211937,2211969]),new Uint32Array([2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2166594,2127298,2166658,2142978,2141827,2166722]),new Uint32Array([2173985,2173761,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233057,2148481,2173601,2173633,2173665,2173697,2173729]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,2185761,2185793,2185825,2185857,2185889,2185921,0,0]),new Uint32Array([6291456,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,6291456]),new Uint32Array([0,0,0,2220961,2220961,2220961,2220961,2144193,2144193,2159201,2159201,2159265,2159265,2144194,2220993,2220993]),new Uint32Array([2192641,2235393,2235425,2152257,2116609,2235457,2235489,2200065,2235521,2235553,2235585,2212449,2235617,2235649,2235681,2235713]),new Uint32Array([2194049,2194081,2194113,2194145,2194177,2194209,2194241,2194273,2194305,2194337,2194369,2194401,2194433,2194465,2194497,2194529]),new Uint32Array([2196673,2208641,2208673,2208705,2208737,2208769,2208801,2208833,2208865,2208897,2208929,2208961,2208993,2209025,2209057,2209089]),new Uint32Array([2191681,2191713,2191745,2191777,2153281,2191809,2191841,2191873,2191905,2191937,2191969,2192001,2192033,2192065,2192097,2192129]),new Uint32Array([2230946,2231010,2231074,2231138,2231202,2231266,2231330,2231394,2231458,2231522,2231586,2231650,2231714,2231778,2231842,2231906]),new Uint32Array([14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2185953,2185985,2186017,2186049,2186081,2186113,2186145,2186177]),new Uint32Array([2139811,2139907,2097284,2105860,2105988,2106116,2106244,2097444,2097604,2097155,10485778,10486344,2106372,6291456,0,0]),new Uint32Array([2110051,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2172385,6291456,2172417,6291456,2172449,6291456,2172481,6291456,2172513,6291456,2172545,6291456,2172577,6291456,2172609,6291456]),new Uint32Array([0,0,23068672,23068672,6291456,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2249345,2249377,2249409,2249441,2249473,2249505,2249537,2249570,2210209,2249633,2249665,2249697,2249729,2249761,2249793,2216769]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,6291456,6291456,6291456,6291456]),new Uint32Array([2187169,2187201,2187233,2187265,2187297,2187329,2187361,2187393,2187425,2187457,2187489,2187521,2187553,2187585,2187617,2187649]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,0,6291456,6291456,0,0,0,6291456,6291456,6291456,0,0,0,6291456,6291456]),new Uint32Array([2182337,6291456,2182369,6291456,2182401,6291456,2182433,6291456,2182465,6291456,2182497,6291456,2182529,6291456,2182561,6291456]),new Uint32Array([2138179,2138275,2138371,2138467,2134243,2134435,2138563,2138659,2138755,2138851,2138947,2139043,2138947,2138755,2139139,2139235]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0]),new Uint32Array([0,0,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2250498,2250562,2250625,2250657,2208321,2250689,2250721,2250753,2250785,2250817,2250849,2218945,2250881,2250913,2250945,0]),new Uint32Array([2170369,2105569,2098305,2108481,2173249,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456]),new Uint32Array([2100897,2111905,2105473,2105569,2105601,0,2108193,0,0,0,2098305,2108321,2108289,2100865,2113153,2108481]),new Uint32Array([2100897,2100897,2105569,2105569,6291456,2112289,2149826,6291456,6291456,2112481,2112577,2098177,2098177,2098177,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,6291456,6291456,6291456]),new Uint32Array([6291456,2169953,2169985,6291456,2170017,6291456,2170049,2170081,6291456,2170113,2170145,2170177,6291456,6291456,2170209,2170241]),new Uint32Array([6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2220641,2220641,2220673,2220673,2220673,2220673,2220705,2220705,2220705,2220705,2220737,2220737,2220737,2220737,2220769,2220769]),new Uint32Array([2127650,2127746,2127842,2127938,2128034,2128130,2128226,2128322,2128418,2127523,2127619,2127715,2127811,2127907,2128003,2128099]),new Uint32Array([2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953,2173985,2173761,2174017,2174049,2174081,2174113,2174145,2174177]),new Uint32Array([0,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2204705,2204737,2204769,2204801,2204833,2204865,2204897,2204929,2204961,2204993,2205025,2205057,2205089,2205121,2205153,2205185]),new Uint32Array([2176385,6291456,2176417,6291456,2176449,6291456,2176481,6291456,2176513,6291456,2176545,6291456,2176577,6291456,2176609,6291456]),new Uint32Array([2195521,2195553,2195585,2195617,2195649,2195681,2117857,2195713,2195745,2195777,2195809,2195841,2195873,2195905,2195937,2195969]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456]),new Uint32Array([2173921,2173953,2173985,2174017,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233089,2173697,2173761,2173793,2174113]),new Uint32Array([2131586,2132450,2135970,2135778,2161602,2136162,2163650,2161794,2135586,2163714,2137186,2131810,2160290,2135170,2097506,2159554]),new Uint32Array([2134145,2097153,2134241,2105953,2132705,2130977,2160065,2131297,2162049,2133089,2160577,2133857,0,0,0,0]),new Uint32Array([2116513,2116609,2116705,2116801,2116897,2116993,2117089,2117185,2117281,2117377,2117473,2117569,2117665,2117761,2117857,2117953]),new Uint32Array([2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,2100802,2101154,2101282,2101410,2101538,2101666,2101794]),new Uint32Array([2100289,2098657,2098049,2200737,2123489,2123681,2200769,2098625,2100321,2098145,2100449,2098017,2098753,2098977,2150241,2150305]),new Uint32Array([6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,2109955,6291456,6291456,0,0,0,0]),new Uint32Array([18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,6291456,0,0]),new Uint32Array([2130979,2131075,2131075,2131171,2131267,2131363,2131459,2131555,2131651,2131651,2131747,2131843,2131939,2132035,2132131,2132227]),new Uint32Array([0,2177793,6291456,2177825,6291456,2177857,6291456,2177889,6291456,2177921,6291456,2177953,6291456,2177985,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2113345,0,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289]),new Uint32Array([2136643,2136739,2136835,2136931,2137027,2137123,2137219,2137315,2137411,2137507,2137603,2137699,2137795,2137891,2137987,2138083]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([2174433,6291456,2174465,6291456,2174497,6291456,2174529,6291456,2174561,6291456,2174593,6291456,2174625,6291456,2174657,6291456]),new Uint32Array([0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441]),new Uint32Array([10496547,10496643,2105505,2149698,6291456,10496739,10496835,2170273,6291456,2149762,2105825,2111713,2111713,2111713,2111713,2168673]),new Uint32Array([6291456,2143490,2143490,2143490,2171649,6291456,2171681,2171713,2171745,6291456,2171777,6291456,2171809,6291456,2171841,6291456]),new Uint32Array([2159106,2159106,2159170,2159170,2159234,2159234,2159298,2159298,2159298,2159362,2159362,2159362,2106401,2106401,2106401,2106401]),new Uint32Array([2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137]),new Uint32Array([2108417,2181217,2181249,2181281,2170433,2170401,2181313,2181345,2181377,2181409,2181441,2181473,2181505,2181537,2170529,2181569]),new Uint32Array([2218433,2245761,2245793,2245825,2245857,2245890,2245953,2245986,2209665,2246050,2246113,2246146,2246210,2246274,2246337,2246369]),new Uint32Array([2230754,2230818,2230882,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,0,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2184129,6291456,2184161,6291456,2184193,6291456,6291456,6291456,6291456,6291456,2146818,2183361,6291456,6291456,2142978,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2135170,2097506,2130691,2130787,2130883,2163970,2164034,2164098,2164162,2164226,2164290,2164354,2164418,2164482,2164546,2133122]),new Uint32Array([2108515,2108611,2100740,2108707,2108803,2108899,2108995,2109091,2109187,2109283,2109379,2109475,2109571,2109667,2109763,2100738]),new Uint32Array([2102788,2102916,2103044,2120515,2103172,2120611,2120707,2098373,2103300,2120803,2120899,2120995,2103428,2103556,2121091,2121187]),new Uint32Array([2158082,2158146,0,2158210,2158274,0,2158338,2158402,2158466,2129922,2158530,2158594,2158658,2158722,2158786,2158850]),new Uint32Array([10499619,10499715,10499811,10499907,10500003,10500099,10500195,10500291,10500387,10500483,10500579,10500675,10500771,10500867,10500963,10501059]),new Uint32Array([2239585,2239618,2239681,2239713,0,2191969,2239745,2239777,2192033,2239809,2239841,2239874,2239937,2239970,2240033,2240065]),new Uint32Array([2252705,2252738,2252801,2252833,2252865,2252897,2252930,2252994,2253057,2253089,2253121,2253154,2253217,2253250,2219361,2219361]),new Uint32Array([2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,10538050,10538114,10538178,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2226402,2226466,2226530,2226594,2226658,2226722,2226786,2226850,2226914,2226978,2227042,2227106,2227170,2227234,2227298,2227362]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,2144066,2144130,2144194,2144258,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,6291456,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0]),new Uint32Array([2124674,2124770,2123875,2123971,2124067,2124163,2124259,2124355,2124451,2124547,2124643,2124739,2124835,2124931,2125027,2125123]),new Uint32Array([2168065,6291456,2168097,6291456,2168129,6291456,2168161,6291456,2168193,6291456,2168225,6291456,2168257,6291456,2168289,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0]),new Uint32Array([23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,2100610,2100611,6291456,2107842,2107843,6291456,6291456,6291456,6291456,10537922,6291456,10537986,6291456]),new Uint32Array([2174849,2174881,2174913,2174945,2174977,2175009,2175041,2175073,2175105,2175137,2175169,2175201,2175233,2175265,2175297,2175329]),new Uint32Array([2154562,2154626,2154690,2154754,2141858,2154818,2154882,2127298,2154946,2127298,2155010,2155074,2155138,2155202,2155266,2155202]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,23068672,0]),new Uint32Array([2200641,2150786,2150850,2150914,2150978,2151042,2106562,2151106,2150562,2151170,2151234,2151298,2151362,2151426,2151490,2151554]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,6291456,6291456]),new Uint32Array([2220289,2220289,2220321,2220321,2220321,2220321,2220353,2220353,2220353,2220353,2220385,2220385,2220385,2220385,2220417,2220417]),new Uint32Array([2155330,2155394,0,2155458,2155522,2155586,2105732,0,2155650,2155714,2155778,2125314,2155842,2155906,2126274,2155970]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,6291456,6291456,23068672,23068672,6291456,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0]),new Uint32Array([2097729,2106017,2106017,2106017,2106017,2131297,2131297,2131297,2131297,2106081,2106081,2162049,2162049,2105953,2105953,2162337]),new Uint32Array([2097185,2097697,2097697,2097697,2097697,2135777,2135777,2135777,2135777,2097377,2097377,2097377,2097377,2097601,2097601,2097217]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23068672]),new Uint32Array([2139331,2139427,2139523,2139043,2133571,2132611,2139619,2139715,0,0,0,0,0,0,0,0]),new Uint32Array([2174113,2174145,2100897,2098177,2108289,2100865,2173601,2173633,2173985,2174113,2174145,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,23068672,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,18923778,23068672,23068672,23068672,23068672,18923842,23068672,23068672,23068672,23068672,18923906,23068672,23068672,23068672]),new Uint32Array([2134145,2097153,2134241,0,2132705,2130977,2160065,2131297,0,2133089,0,2133857,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2177537,6291456,2177569,6291456,2177601,6291456,2177633,6291456,2177665,6291456,2177697,6291456,2177729,6291456,2177761,6291456]),new Uint32Array([2212481,2212513,2212545,2212577,2197121,2212609,2212641,2212673,2212705,2212737,2212769,2212801,2212833,2212865,2212897,2212929]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,6291456,6291456,0,0,0,0,0,0,0,0,0]),new Uint32Array([2098241,2108353,2170209,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,6291456,2108193,2172417,2112481,2098177]),new Uint32Array([6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456])],t=new Uint16Array([616,616,565,147,161,411,330,2,131,131,328,454,241,408,86,86,696,113,285,350,325,301,473,214,639,232,447,64,369,598,124,672,567,223,621,154,107,86,86,86,86,86,86,505,86,68,634,86,218,218,218,218,486,218,218,513,188,608,216,86,217,463,668,85,700,360,184,86,86,86,647,402,153,10,346,718,662,260,145,298,117,1,443,342,138,54,563,86,240,572,218,70,387,86,118,460,641,602,86,86,306,218,86,692,86,86,86,86,86,162,707,86,458,26,86,218,638,86,86,86,86,86,65,449,86,86,306,183,86,58,391,667,86,157,131,131,131,131,86,433,131,406,31,218,247,86,86,693,218,581,351,86,438,295,69,462,45,126,173,650,14,295,69,97,168,187,641,78,523,390,69,108,287,664,173,219,83,295,69,108,431,426,173,694,412,115,628,52,257,398,641,118,501,121,69,579,151,423,173,620,464,121,69,382,151,476,173,27,53,121,86,594,578,226,173,86,632,130,86,96,228,268,641,622,563,86,86,21,148,650,131,131,321,43,144,343,381,531,131,131,178,20,86,399,156,375,164,541,30,60,715,198,92,118,131,131,86,86,306,407,86,280,457,196,488,358,131,131,244,86,86,143,86,86,86,86,86,667,563,86,86,86,86,86,86,86,86,86,86,86,86,86,336,363,86,86,336,86,86,380,678,67,86,86,86,678,86,86,86,512,86,307,86,708,86,86,86,86,86,528,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,563,307,86,86,86,86,86,104,450,337,86,720,86,32,450,397,86,86,86,587,218,558,708,708,293,708,86,86,86,86,86,694,205,86,8,86,86,86,86,549,86,667,697,697,679,86,458,460,86,86,650,86,708,543,86,86,86,245,86,86,86,140,218,127,708,708,458,197,131,131,131,131,500,86,86,483,251,86,306,510,515,86,722,86,86,86,65,201,86,86,483,580,470,86,86,86,368,131,131,131,694,114,110,555,86,86,123,721,163,142,713,418,86,317,675,209,218,218,218,371,545,592,629,490,603,199,46,320,525,680,310,279,388,111,42,252,593,607,235,617,410,377,50,548,135,356,17,520,189,116,392,600,349,332,482,699,690,535,119,106,451,71,152,667,131,218,218,265,671,637,492,504,533,683,269,269,658,86,86,86,86,86,86,86,86,86,491,619,86,86,6,86,86,86,86,86,86,86,86,86,86,86,229,86,86,86,86,86,86,86,86,86,86,86,86,667,86,86,171,131,118,131,656,206,234,571,89,334,670,246,311,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,534,86,86,86,86,86,86,82,86,86,86,86,86,430,86,86,86,86,86,86,86,86,86,599,86,324,86,470,69,640,264,131,626,101,174,86,86,667,233,105,73,374,394,221,204,84,28,326,86,86,471,86,86,86,109,573,86,171,200,200,200,200,218,218,86,86,86,86,460,131,131,131,86,506,86,86,86,86,86,220,404,34,614,47,442,305,25,612,338,601,648,7,344,255,131,131,51,86,312,507,563,86,86,86,86,588,86,86,86,86,86,530,511,86,458,3,435,384,556,522,230,527,86,118,86,86,717,86,137,273,79,181,484,23,93,112,655,249,417,703,370,87,98,313,684,585,155,465,596,481,695,18,416,428,61,701,706,282,643,495,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,549,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,549,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,307,86,86,86,171,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,650,131,422,542,420,263,24,172,86,86,86,86,86,566,86,86,132,540,395,353,494,519,19,485,284,472,131,131,131,16,714,86,211,708,86,86,86,694,698,86,86,483,704,708,218,272,86,86,120,86,159,478,86,307,247,86,86,663,597,459,627,667,86,86,277,455,39,302,86,250,86,86,86,271,99,452,306,281,329,400,200,86,86,362,549,352,646,461,323,586,86,86,4,708,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,717,86,518,86,86,650,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,125,554,480,300,613,72,333,288,561,544,604,48,719,91,169,176,590,224,76,191,29,559,560,231,537,166,477,538,256,437,131,131,469,167,40,0,685,266,441,705,239,642,475,568,640,610,299,673,517,318,385,22,202,180,179,359,424,215,90,66,521,653,467,682,453,409,479,88,131,661,35,303,15,262,666,630,712,131,131,618,659,175,218,195,347,193,227,261,150,165,709,546,294,569,710,270,413,376,524,55,242,38,419,529,170,657,3,304,122,379,278,131,651,86,67,576,458,458,131,131,86,86,86,86,86,86,86,118,309,86,86,547,86,86,86,86,667,650,664,131,131,86,86,56,131,131,131,131,131,131,131,131,86,307,86,86,86,664,238,650,86,86,717,86,118,86,86,315,86,59,86,86,574,549,131,131,340,57,436,86,86,86,86,86,86,458,708,499,691,62,86,650,86,86,694,86,86,86,319,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,171,86,549,694,131,131,131,131,131,131,131,131,131,77,86,86,139,86,502,86,86,86,667,595,131,131,131,86,12,86,13,86,609,131,131,131,131,86,86,86,625,86,669,86,86,182,129,86,5,694,104,86,86,86,86,131,131,86,86,386,171,86,86,86,345,86,324,86,589,86,213,36,131,131,131,131,131,86,86,86,86,104,131,131,131,141,290,80,677,86,86,86,267,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,667,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,515,86,86,33,136,669,86,711,515,86,86,550,640,86,104,708,515,86,159,372,717,86,86,444,515,86,86,663,37,86,563,460,86,390,624,702,131,131,131,131,389,59,708,86,86,341,208,708,635,295,69,108,431,508,100,190,131,131,131,131,131,131,131,131,86,86,86,649,516,660,131,131,86,86,86,218,631,708,131,131,131,131,131,131,131,131,131,131,86,86,341,575,238,514,131,131,86,86,86,218,291,708,307,131,86,86,306,367,708,131,131,131,86,378,697,86,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,615,253,86,86,86,292,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,104,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,69,86,341,553,549,86,307,86,86,645,275,455,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,708,131,131,131,131,131,131,86,86,86,86,86,86,667,460,86,86,86,86,86,86,86,86,86,86,86,86,717,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,667,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,171,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,104,86,667,459,131,131,131,131,131,131,86,458,225,86,86,86,516,549,11,390,405,86,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,460,44,218,197,711,515,131,131,131,131,664,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,307,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,308,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,640,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,118,307,104,286,591,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,549,86,86,681,86,86,75,185,314,582,86,358,496,474,86,104,131,86,86,86,86,146,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,171,86,640,131,131,131,131,131,131,131,131,246,503,689,339,674,81,258,415,439,128,562,366,414,246,503,689,583,222,557,316,636,665,186,355,95,670,246,503,689,339,674,557,258,415,439,186,355,95,670,246,503,689,446,644,536,652,331,532,335,440,274,421,297,570,74,425,364,425,606,552,403,509,134,365,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,218,218,218,498,218,218,577,627,551,497,572,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,553,354,236,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,296,455,131,131,456,243,103,86,41,459,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,9,276,158,716,393,564,383,489,401,654,210,654,131,131,131,640,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,650,86,86,86,86,86,86,717,667,563,563,563,86,549,102,686,133,246,605,86,448,86,86,207,307,131,131,131,641,86,177,611,445,373,194,584,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,308,307,171,86,86,86,86,86,86,86,717,86,86,86,86,86,460,131,131,650,86,86,86,694,708,86,86,694,86,458,131,131,131,131,131,131,667,694,289,650,667,131,131,86,640,131,131,664,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,171,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,460,86,86,86,86,86,86,86,86,86,86,86,86,86,458,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,640,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,466,203,149,429,94,432,160,687,539,63,237,283,192,248,348,259,427,526,396,676,254,468,487,212,327,623,49,633,322,493,434,688,357,361,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131]),{mapStr:"صلى الله عليه وسلمجل جلالهキロメートルrad∕s2エスクードキログラムキロワットグラムトンクルゼイロサンチームパーセントピアストルファラッドブッシェルヘクタールマンションミリバールレントゲン′′′′1⁄10viii(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫(오전)(오후)アパートアルファアンペアイニングエーカーカラットカロリーキュリーギルダークローネサイクルシリングバーレルフィートポイントマイクロミクロンメガトンリットルルーブル株式会社kcalm∕s2c∕kgاكبرمحمدصلعمرسولریال1⁄41⁄23⁄4 ̈́ྲཱྀླཱྀ ̈͂ ̓̀ ̓́ ̓͂ ̔̀ ̔́ ̔͂ ̈̀‵‵‵a/ca/sc/oc/utelfax1⁄71⁄91⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83⁄85⁄87⁄8xii0⁄3∮∮∮(1)(2)(3)(4)(5)(6)(7)(8)(9)(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z)::====(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)pte10月11月12月ergltdアールインチウォンオンスオームカイリガロンガンマギニーケースコルナコーポセンチダースノットハイツパーツピクルフランペニヒヘルツペンスページベータボルトポンドホールホーンマイルマッハマルクヤードヤールユアンルピー10点11点12点13点14点15点16点17点18点19点20点21点22点23点24点hpabardm2dm3khzmhzghzthzmm2cm2km2mm3cm3km3kpampagpalogmilmolppmv∕ma∕m10日11日12日13日14日15日16日17日18日19日20日21日22日23日24日25日26日27日28日29日30日31日galffifflשּׁשּׂ ٌّ ٍّ َّ ُّ ِّ ّٰـَّـُّـِّتجمتحجتحمتخمتمجتمحتمخجمححميحمىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمىفخمقمحقمملحملحيلحىلججلخملمحمحجمحيمجحمجممخممجخهمجهممنحمنحىنجمنجىنمينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمينحيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلے𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱𝅘𝅥𝅲𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯〔s〕ppv〔本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕 ̄ ́ ̧ssi̇ijl·ʼndžljnjdz ̆ ̇ ̊ ̨ ̃ ̋ ιեւاٴوٴۇٴيٴक़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀླྀྒྷྜྷྡྷྦྷྫྷྐྵaʾἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧιὰιαιάιᾶι ͂ὴιηιήιῆιὼιωιώιῶι ̳!! ̅???!!?rs°c°fnosmtmivix⫝̸ ゙ ゚よりコト333435참고주의363738394042444546474849503月4月5月6月7月8月9月hgevギガデシドルナノピコビルペソホンリラレムdaauovpciu平成昭和大正明治naμakakbmbgbpfnfμfμgmgμlmldlklfmnmμmpsnsμsmsnvμvkvpwnwμwmwkwkωmωbqcccddbgyhainkkktlnlxphprsrsvwbstմնմեմիվնմխיִײַשׁשׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּתּוֹבֿכֿפֿאלئائەئوئۇئۆئۈئېئىئجئحئمئيبجبمبىبيتىتيثجثمثىثيخحضجضمطحظمغجفجفحفىفيقحقىقيكاكجكحكخكلكىكينخنىنيهجهىهييىذٰرٰىٰئرئزئنبزبنترتزتنثرثزثنمانرنزننيريزئخئهبهتهصخنههٰثهسهشهطىطيعىعيغىغيسىسيشىشيصىصيضىضيشخشرسرصرضراً ًـًـّ ْـْلآلألإ𝅗𝅥0,1,2,3,4,5,6,7,8,9,wzhvsdwcmcmddjほかココàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįĵķĺļľłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷÿźżɓƃƅɔƈɖɗƌǝəɛƒɠɣɩɨƙɯɲɵơƣƥʀƨʃƭʈưʊʋƴƶʒƹƽǎǐǒǔǖǘǚǜǟǡǣǥǧǩǫǭǯǵƕƿǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟƞȣȥȧȩȫȭȯȱȳⱥȼƚⱦɂƀʉʌɇɉɋɍɏɦɹɻʁʕͱͳʹͷ;ϳέίόύβγδεζθκλνξοπρστυφχψϊϋϗϙϛϝϟϡϣϥϧϩϫϭϯϸϻͻͼͽѐёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюяѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧԩԫԭԯաբգդզէըթժլծկհձղճյշոչպջռստրցփքօֆ་ⴧⴭნᏰᏱᏲᏳᏴᏵꙋɐɑᴂɜᴖᴗᴝᴥɒɕɟɡɥɪᵻʝɭᶅʟɱɰɳɴɸʂƫᴜʐʑḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿἐἑἒἓἔἕἰἱἲἳἴἵἶἷὀὁὂὃὄὅὑὓὕὗᾰᾱὲΐῐῑὶΰῠῡὺῥ`ὸ‐+−∑〈〉ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞⱡɫᵽɽⱨⱪⱬⱳⱶȿɀⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳬⳮⳳⵡ母龟丨丶丿乙亅亠人儿入冂冖冫几凵刀力勹匕匚匸卜卩厂厶又口囗士夂夊夕女子宀寸小尢尸屮山巛工己巾干幺广廴廾弋弓彐彡彳心戈戶手支攴文斗斤方无曰欠止歹殳毋比毛氏气爪父爻爿片牙牛犬玄玉瓜瓦甘生用田疋疒癶白皮皿目矛矢石示禸禾穴立竹米糸缶网羊羽老而耒耳聿肉臣臼舌舛舟艮色艸虍虫血行衣襾見角言谷豆豕豸貝赤走足身車辛辰辵邑酉釆里長門阜隶隹雨靑非面革韋韭音頁風飛食首香馬骨高髟鬥鬯鬲鬼魚鳥鹵鹿麥麻黃黍黑黹黽鼎鼓鼠鼻齊齒龍龜龠.〒卄卅ᄁᆪᆬᆭᄄᆰᆱᆲᆳᆴᆵᄚᄈᄡᄊ짜ᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵᄔᄕᇇᇈᇌᇎᇓᇗᇙᄜᇝᇟᄝᄞᄠᄢᄣᄧᄩᄫᄬᄭᄮᄯᄲᄶᅀᅇᅌᇱᇲᅗᅘᅙᆄᆅᆈᆑᆒᆔᆞᆡ上中下甲丙丁天地問幼箏우秘男適優印注項写左右医宗夜テヌモヨヰヱヲꙁꙃꙅꙇꙉꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꚙꚛꜣꜥꜧꜩꜫꜭꜯꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝺꝼᵹꝿꞁꞃꞅꞇꞌꞑꞓꞗꞙꞛꞝꞟꞡꞣꞥꞧꞩɬʞʇꭓꞵꞷꬷꭒᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿᏀᏁᏂᏃᏄᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯ豈更賈滑串句契喇奈懶癩羅蘿螺裸邏樂洛烙珞落酪駱亂卵欄爛蘭鸞嵐濫藍襤拉臘蠟廊朗浪狼郎來冷勞擄櫓爐盧蘆虜路露魯鷺碌祿綠菉錄論壟弄籠聾牢磊賂雷壘屢樓淚漏累縷陋勒肋凜凌稜綾菱陵讀拏諾丹寧怒率異北磻便復不泌數索參塞省葉說殺沈拾若掠略亮兩凉梁糧良諒量勵呂廬旅濾礪閭驪麗黎曆歷轢年憐戀撚漣煉璉秊練聯輦蓮連鍊列劣咽烈裂廉念捻殮簾獵令囹嶺怜玲瑩羚聆鈴零靈領例禮醴隸惡了僚寮尿料燎療蓼遼暈阮劉杻柳流溜琉留硫紐類戮陸倫崙淪輪律慄栗隆利吏履易李梨泥理痢罹裏裡離匿溺吝燐璘藺隣鱗麟林淋臨笠粒狀炙識什茶刺切度拓糖宅洞暴輻降廓兀嗀塚晴凞猪益礼神祥福靖精蘒諸逸都飯飼館鶴郞隷侮僧免勉勤卑喝嘆器塀墨層悔慨憎懲敏既暑梅海渚漢煮爫琢碑祉祈祐祖禍禎穀突節縉繁署者臭艹著褐視謁謹賓贈辶難響頻恵𤋮舘並况全侀充冀勇勺啕喙嗢墳奄奔婢嬨廒廙彩徭惘慎愈慠戴揄搜摒敖望杖滛滋瀞瞧爵犯瑱甆画瘝瘟盛直睊着磌窱类絛缾荒華蝹襁覆調請諭變輸遲醙鉶陼韛頋鬒𢡊𢡄𣏕㮝䀘䀹𥉉𥳐𧻓齃龎עםٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھۓڭۋۅۉ、〖〗—–_{}【】《》「」『』[]#&*-<>\\$%@ءؤة\"'^|~⦅⦆・ゥャ¢£¬¦¥₩│←↑→↓■○𐐨𐐩𐐪𐐫𐐬𐐭𐐮𐐯𐐰𐐱𐐲𐐳𐐴𐐵𐐶𐐷𐐸𐐹𐐺𐐻𐐼𐐽𐐾𐐿𐑀𐑁𐑂𐑃𐑄𐑅𐑆𐑇𐑈𐑉𐑊𐑋𐑌𐑍𐑎𐑏𐓘𐓙𐓚𐓛𐓜𐓝𐓞𐓟𐓠𐓡𐓢𐓣𐓤𐓥𐓦𐓧𐓨𐓩𐓪𐓫𐓬𐓭𐓮𐓯𐓰𐓱𐓲𐓳𐓴𐓵𐓶𐓷𐓸𐓹𐓺𐓻𐳀𐳁𐳂𐳃𐳄𐳅𐳆𐳇𐳈𐳉𐳊𐳋𐳌𐳍𐳎𐳏𐳐𐳑𐳒𐳓𐳔𐳕𐳖𐳗𐳘𐳙𐳚𐳛𐳜𐳝𐳞𐳟𐳠𐳡𐳢𐳣𐳤𐳥𐳦𐳧𐳨𐳩𐳪𐳫𐳬𐳭𐳮𐳯𐳰𐳱𐳲𑣀𑣁𑣂𑣃𑣄𑣅𑣆𑣇𑣈𑣉𑣊𑣋𑣌𑣍𑣎𑣏𑣐𑣑𑣒𑣓𑣔𑣕𑣖𑣗𑣘𑣙𑣚𑣛𑣜𑣝𑣞𑣟ıȷ∇∂𞤢𞤣𞤤𞤥𞤦𞤧𞤨𞤩𞤪𞤫𞤬𞤭𞤮𞤯𞤰𞤱𞤲𞤳𞤴𞤵𞤶𞤷𞤸𞤹𞤺𞤻𞤼𞤽𞤾𞤿𞥀𞥁𞥂𞥃ٮڡٯ字双多解交映無前後再新初終販声吹演投捕遊指禁空合満申割営配得可丽丸乁𠄢你侻倂偺備像㒞𠘺兔兤具𠔜㒹內𠕋冗冤仌冬𩇟刃㓟刻剆剷㔕包匆卉博即卽卿𠨬灰及叟𠭣叫叱吆咞吸呈周咢哶唐啓啣善喫喳嗂圖圗噑噴壮城埴堍型堲報墬𡓤売壷夆夢奢𡚨𡛪姬娛娧姘婦㛮嬈嬾𡧈寃寘寳𡬘寿将㞁屠峀岍𡷤嵃𡷦嵮嵫嵼巡巢㠯巽帨帽幩㡢𢆃㡼庰庳庶𪎒𢌱舁弢㣇𣊸𦇚形彫㣣徚忍志忹悁㤺㤜𢛔惇慈慌慺憲憤憯懞戛扝抱拔捐𢬌挽拼捨掃揤𢯱搢揅掩㨮摩摾撝摷㩬敬𣀊旣書晉㬙㬈㫤冒冕最暜肭䏙朡杞杓𣏃㭉柺枅桒𣑭梎栟椔楂榣槪檨𣚣櫛㰘次𣢧歔㱎歲殟殻𣪍𡴋𣫺汎𣲼沿泍汧洖派浩浸涅𣴞洴港湮㴳滇𣻑淹潮𣽞𣾎濆瀹瀛㶖灊災灷炭𠔥煅𤉣熜爨牐𤘈犀犕𤜵𤠔獺王㺬玥㺸瑇瑜璅瓊㼛甤𤰶甾𤲒𢆟瘐𤾡𤾸𥁄㿼䀈𥃳𥃲𥄙𥄳眞真瞋䁆䂖𥐝硎䃣𥘦𥚚𥛅秫䄯穊穏𥥼𥪧䈂𥮫篆築䈧𥲀糒䊠糨糣紀𥾆絣䌁緇縂繅䌴𦈨𦉇䍙𦋙罺𦌾羕翺𦓚𦔣聠𦖨聰𣍟䏕育脃䐋脾媵𦞧𦞵𣎓𣎜舄辞䑫芑芋芝劳花芳芽苦𦬼茝荣莭茣莽菧荓菊菌菜𦰶𦵫𦳕䔫蓱蓳蔖𧏊蕤𦼬䕝䕡𦾱𧃒䕫虐虧虩蚩蚈蜎蛢蜨蝫螆蟡蠁䗹衠𧙧裗裞䘵裺㒻𧢮𧥦䚾䛇誠𧲨貫賁贛起𧼯𠠄跋趼跰𠣞軔𨗒𨗭邔郱鄑𨜮鄛鈸鋗鋘鉼鏹鐕𨯺開䦕閷𨵷䧦雃嶲霣𩅅𩈚䩮䩶韠𩐊䪲𩒖頩𩖶飢䬳餩馧駂駾䯎𩬰鱀鳽䳎䳭鵧𪃎䳸𪄅𪈎𪊑䵖黾鼅鼏鼖𪘀",mapChar:function(r){return r>=196608?r>=917760&&r<=917999?18874368:0:e[t[r>>4]][15&r]}};var e,t}.apply(t,[]))||(e.exports=n)},function(e,t,r){"use strict";e.exports=[{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"resolver",outputs:[{name:"",type:"address"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"label",type:"bytes32"},{name:"owner",type:"address"}],name:"setSubnodeOwner",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"ttl",type:"uint64"}],name:"setTTL",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"ttl",outputs:[{name:"",type:"uint64"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"resolver",type:"address"}],name:"setResolver",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"owner",type:"address"}],name:"setOwner",outputs:[],payable:!1,type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"owner",type:"address"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!0,name:"label",type:"bytes32"},{indexed:!1,name:"owner",type:"address"}],name:"NewOwner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"resolver",type:"address"}],name:"NewResolver",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"ttl",type:"uint64"}],name:"NewTTL",type:"event"},{constant:!1,inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"resolver",type:"address"},{internalType:"uint64",name:"ttl",type:"uint64"}],name:"setRecord",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"recordExists",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"bytes32",name:"label",type:"bytes32"},{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"resolver",type:"address"},{internalType:"uint64",name:"ttl",type:"uint64"}],name:"setSubnodeRecord",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"}]},function(e,t,r){"use strict";e.exports=[{constant:!0,inputs:[{name:"interfaceID",type:"bytes4"}],name:"supportsInterface",outputs:[{name:"",type:"bool"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"},{name:"contentTypes",type:"uint256"}],name:"ABI",outputs:[{name:"contentType",type:"uint256"},{name:"data",type:"bytes"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"hash",type:"bytes"}],name:"setMultihash",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"multihash",outputs:[{name:"",type:"bytes"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"x",type:"bytes32"},{name:"y",type:"bytes32"}],name:"setPubkey",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"content",outputs:[{name:"ret",type:"bytes32"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"addr",outputs:[{name:"ret",type:"address"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"contentType",type:"uint256"},{name:"data",type:"bytes"}],name:"setABI",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"name",outputs:[{name:"ret",type:"string"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"name",type:"string"}],name:"setName",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"hash",type:"bytes32"}],name:"setContent",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"pubkey",outputs:[{name:"x",type:"bytes32"},{name:"y",type:"bytes32"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"addr",type:"address"}],name:"setAddr",outputs:[],payable:!1,type:"function"},{inputs:[{name:"ensAddr",type:"address"}],payable:!1,type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"a",type:"address"}],name:"AddrChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"hash",type:"bytes32"}],name:"ContentChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"name",type:"string"}],name:"NameChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!0,name:"contentType",type:"uint256"}],name:"ABIChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"x",type:"bytes32"},{indexed:!1,name:"y",type:"bytes32"}],name:"PubkeyChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"hash",type:"bytes"}],name:"ContenthashChanged",type:"event"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"contenthash",outputs:[{name:"",type:"bytes"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"hash",type:"bytes"}],name:"setContenthash",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"}]},function(e,t,r){"use strict";var n=r(0),i=n(r(44)),o=n(r(83)),a=r(61),s=r(153),f=r(10).errors,u=r(11),c=r(134).interfaceIds;function h(e){this.registry=e}h.prototype.method=function(e,t,r,n,i){return{call:this.call.bind({ensName:e,methodName:t,methodArguments:r,callback:i,parent:this,outputFormatter:n}),send:this.send.bind({ensName:e,methodName:t,methodArguments:r,callback:i,parent:this})}},h.prototype.call=function(e){var t=this,r=new a,n=this.parent.prepareArguments(this.ensName,this.methodArguments),s=this.outputFormatter||null;return this.parent.registry.getResolver(this.ensName).then(function(){var a=(0,o.default)(i.default.mark((function o(a){return i.default.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,t.parent.checkInterfaceSupport(a,t.methodName);case 2:t.parent.handleCall(r,a.methods[t.methodName],n,s,e);case 3:case"end":return i.stop()}}),o)})));return function(e){return a.apply(this,arguments)}}()).catch((function(t){u.isFunction(e)?e(t,null):r.reject(t)})),r.eventEmitter},h.prototype.send=function(e,t){var r=this,n=new a,s=this.parent.prepareArguments(this.ensName,this.methodArguments);return this.parent.registry.getResolver(this.ensName).then(function(){var a=(0,o.default)(i.default.mark((function o(a){return i.default.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,r.parent.checkInterfaceSupport(a,r.methodName);case 2:r.parent.handleSend(n,a.methods[r.methodName],s,e,t);case 3:case"end":return i.stop()}}),o)})));return function(e){return a.apply(this,arguments)}}()).catch((function(e){u.isFunction(t)?t(e,null):n.reject(e)})),n.eventEmitter},h.prototype.handleCall=function(e,t,r,n,i){return t.apply(this,r).call().then((function(t){n&&(t=n(t)),u.isFunction(i)?i(t,t):e.resolve(t)})).catch((function(t){u.isFunction(i)?i(t,null):e.reject(t)})),e},h.prototype.handleSend=function(e,t,r,n,i){return t.apply(this,r).send(n).on("sending",(function(){e.eventEmitter.emit("sending")})).on("sent",(function(){e.eventEmitter.emit("sent")})).on("transactionHash",(function(t){e.eventEmitter.emit("transactionHash",t)})).on("confirmation",(function(t,r){e.eventEmitter.emit("confirmation",t,r)})).on("receipt",(function(t){e.eventEmitter.emit("receipt",t),e.resolve(t),u.isFunction(i)&&i(t,t)})).on("error",(function(t){e.eventEmitter.emit("error",t),u.isFunction(i)?i(t,null):e.reject(t)})),e},h.prototype.prepareArguments=function(e,t){var r=s.hash(e);return t.length>0?(t.unshift(r),t):[r]},h.prototype.checkInterfaceSupport=function(){var e=(0,o.default)(i.default.mark((function e(t,r){var n;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c[r]){e.next=2;break}return e.abrupt("return");case 2:return n=!1,e.prev=3,e.next=6,t.methods.supportsInterface(c[r]).call();case 6:n=e.sent,e.next=12;break;case 9:e.prev=9,e.t0=e.catch(3),console.warn('Could not verify interface of resolver contract at "'+t.options.address+'". ');case 12:if(n){e.next=14;break}throw f.ResolverMethodMissingError(t.options.address,r);case 14:case"end":return e.stop()}}),e,null,[[3,9]])})));return function(t,r){return e.apply(this,arguments)}}(),e.exports=h},function(e,t,r){"use strict";var n=r(344);e.exports={decode:function(e){var t=null,r=null,i=null;if(e&&e.error)return{protocolType:null,decoded:e.error};if(e)try{t=n.decode(e);var o=n.getCodec(e);"ipfs-ns"===o?r="ipfs":"swarm-ns"===o?r="bzz":"onion"===o?r="onion":"onion3"===o?r="onion3":t=e}catch(e){i=e.message}return{protocolType:r,decoded:t,error:i}},encode:function(e){var t,r,i=!1;if(e){var o=e.match(/^(ipfs|bzz|onion|onion3):\/\/(.*)/)||e.match(/\/(ipfs)\/(.*)/);o&&(r=o[1],t=o[2]);try{if("ipfs"===r)t.length>=4&&(i="0x"+n.fromIpfs(t));else if("bzz"===r)t.length>=4&&(i="0x"+n.fromSwarm(t));else if("onion"===r)16===t.length&&(i="0x"+n.encode("onion",t));else{if("onion3"!==r)throw new Error("Could not encode content hash: unsupported content type");56===t.length&&(i="0x"+n.encode("onion3",t))}}catch(e){throw e}}return i}}},function(e,t,r){"use strict";var n=r(345),i=r(356),o=i.hexStringToBuffer,a=i.profiles,s=r(380).cidV0ToV1Base32;e.exports={helpers:{cidV0ToV1Base32:s},decode:function(e){var t=o(e),r=n.getCodec(t),i=n.rmPrefix(t),s=a[r];return s||(s=a.default),s.decode(i)},fromIpfs:function(e){return this.encode("ipfs-ns",e)},fromSwarm:function(e){return this.encode("swarm-ns",e)},encode:function(e,t){var r=a[e];r||(r=a.default);var i=r.encode(t);return n.addPrefix(e,i).toString("hex")},getCodec:function(e){var t=o(e);return n.getCodec(t)}}},function(e,t,r){"use strict";(function(n){var i=r(49),o=r(349),a=r(350),s=r(154);(t=e.exports).addPrefix=function(e,t){var r;if(n.isBuffer(e))r=s.varintBufferEncode(e);else{if(!a[e])throw new Error("multicodec not recognized");r=a[e]}return n.concat([r,t])},t.rmPrefix=function(e){return i.decode(e),e.slice(i.decode.bytes)},t.getCodec=function(e){var t=i.decode(e),r=o.get(t);if(void 0===r)throw new Error("Code ".concat(t," not found"));return r},t.getName=function(e){return o.get(e)},t.getNumber=function(e){var t=a[e];if(void 0===t)throw new Error("Codec `"+e+"` not found");return s.varintBufferDecode(t)[0]},t.getCode=function(e){return i.decode(e)},t.getCodeVarint=function(e){var t=a[e];if(void 0===t)throw new Error("Codec `"+e+"` not found");return t},t.getVarint=function(e){return i.encode(e)};var f=r(351);Object.assign(t,f),t.print=r(355)}).call(this,r(2).Buffer)},function(e,t,r){"use strict";e.exports=function e(t,r,i){r=r||[];var o=i=i||0;for(;t>=n;)r[i++]=255&t|128,t/=128;for(;-128&t;)r[i++]=255&t|128,t>>>=7;return r[i]=0|t,e.bytes=i-o+1,r};var n=Math.pow(2,31)},function(e,t,r){"use strict";e.exports=function e(t,r){var n,i=0,o=0,a=r=r||0,s=t.length;do{if(a>=s)throw e.bytes=0,new RangeError("Could not decode varint");n=t[a++],i+=o<28?(127&n)<=128);return e.bytes=a-r,i}},function(e,t,r){"use strict";var n=Math.pow(2,7),i=Math.pow(2,14),o=Math.pow(2,21),a=Math.pow(2,28),s=Math.pow(2,35),f=Math.pow(2,42),u=Math.pow(2,49),c=Math.pow(2,56),h=Math.pow(2,63);e.exports=function(e){return e=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,f=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){f=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(f)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,f=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){f=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(f)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=5;)s+=t[a>>>o-5&31],o-=5;if(o>0&&(s+=t[a<<5-o&31]),i)for(;s.length%8!=0;)s+="=";return s}e.exports=function(e){return{encode:function(t){return o("string"==typeof t?Uint8Array.from(t):t,e)},decode:function(t){var r,i=n(t);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(e.indexOf(o)<0)throw new Error("invalid base32 character")}}catch(e){i.e(e)}finally{i.f()}return function(e,t){for(var r=(e=e.replace(new RegExp("=","g"),"")).length,n=0,i=0,o=0,a=new Uint8Array(5*r/8|0),s=0;s=8&&(a[o++]=i>>>n-8&255,n-=8);return a.buffer}(t,e)}}}},function(e,t,r){"use strict";function n(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,f=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){f=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(f)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r-1,r=e.indexOf("-")>-1&&e.indexOf("_")>-1;return{encode:function(e){var n="";n="string"==typeof e?o.from(e).toString("base64"):e.toString("base64"),r&&(n=n.replace(/\+/g,"-").replace(/\//g,"_"));var i=n.indexOf("=");return i>0&&!t&&(n=n.substring(0,i)),n},decode:function(t){var r,i=n(t);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(e.indexOf(a)<0)throw new Error("invalid base64 character")}}catch(e){i.e(e)}finally{i.f()}return o.from(t,"base64")}}}},function(e,t,r){"use strict";t.names=Object.freeze({identity:0,sha1:17,"sha2-256":18,"sha2-512":19,"dbl-sha2-256":86,"sha3-224":23,"sha3-256":22,"sha3-384":21,"sha3-512":20,"shake-128":24,"shake-256":25,"keccak-224":26,"keccak-256":27,"keccak-384":28,"keccak-512":29,"murmur3-128":34,"murmur3-32":35,md4:212,md5:213,"blake2b-8":45569,"blake2b-16":45570,"blake2b-24":45571,"blake2b-32":45572,"blake2b-40":45573,"blake2b-48":45574,"blake2b-56":45575,"blake2b-64":45576,"blake2b-72":45577,"blake2b-80":45578,"blake2b-88":45579,"blake2b-96":45580,"blake2b-104":45581,"blake2b-112":45582,"blake2b-120":45583,"blake2b-128":45584,"blake2b-136":45585,"blake2b-144":45586,"blake2b-152":45587,"blake2b-160":45588,"blake2b-168":45589,"blake2b-176":45590,"blake2b-184":45591,"blake2b-192":45592,"blake2b-200":45593,"blake2b-208":45594,"blake2b-216":45595,"blake2b-224":45596,"blake2b-232":45597,"blake2b-240":45598,"blake2b-248":45599,"blake2b-256":45600,"blake2b-264":45601,"blake2b-272":45602,"blake2b-280":45603,"blake2b-288":45604,"blake2b-296":45605,"blake2b-304":45606,"blake2b-312":45607,"blake2b-320":45608,"blake2b-328":45609,"blake2b-336":45610,"blake2b-344":45611,"blake2b-352":45612,"blake2b-360":45613,"blake2b-368":45614,"blake2b-376":45615,"blake2b-384":45616,"blake2b-392":45617,"blake2b-400":45618,"blake2b-408":45619,"blake2b-416":45620,"blake2b-424":45621,"blake2b-432":45622,"blake2b-440":45623,"blake2b-448":45624,"blake2b-456":45625,"blake2b-464":45626,"blake2b-472":45627,"blake2b-480":45628,"blake2b-488":45629,"blake2b-496":45630,"blake2b-504":45631,"blake2b-512":45632,"blake2s-8":45633,"blake2s-16":45634,"blake2s-24":45635,"blake2s-32":45636,"blake2s-40":45637,"blake2s-48":45638,"blake2s-56":45639,"blake2s-64":45640,"blake2s-72":45641,"blake2s-80":45642,"blake2s-88":45643,"blake2s-96":45644,"blake2s-104":45645,"blake2s-112":45646,"blake2s-120":45647,"blake2s-128":45648,"blake2s-136":45649,"blake2s-144":45650,"blake2s-152":45651,"blake2s-160":45652,"blake2s-168":45653,"blake2s-176":45654,"blake2s-184":45655,"blake2s-192":45656,"blake2s-200":45657,"blake2s-208":45658,"blake2s-216":45659,"blake2s-224":45660,"blake2s-232":45661,"blake2s-240":45662,"blake2s-248":45663,"blake2s-256":45664,"Skein256-8":45825,"Skein256-16":45826,"Skein256-24":45827,"Skein256-32":45828,"Skein256-40":45829,"Skein256-48":45830,"Skein256-56":45831,"Skein256-64":45832,"Skein256-72":45833,"Skein256-80":45834,"Skein256-88":45835,"Skein256-96":45836,"Skein256-104":45837,"Skein256-112":45838,"Skein256-120":45839,"Skein256-128":45840,"Skein256-136":45841,"Skein256-144":45842,"Skein256-152":45843,"Skein256-160":45844,"Skein256-168":45845,"Skein256-176":45846,"Skein256-184":45847,"Skein256-192":45848,"Skein256-200":45849,"Skein256-208":45850,"Skein256-216":45851,"Skein256-224":45852,"Skein256-232":45853,"Skein256-240":45854,"Skein256-248":45855,"Skein256-256":45856,"Skein512-8":45857,"Skein512-16":45858,"Skein512-24":45859,"Skein512-32":45860,"Skein512-40":45861,"Skein512-48":45862,"Skein512-56":45863,"Skein512-64":45864,"Skein512-72":45865,"Skein512-80":45866,"Skein512-88":45867,"Skein512-96":45868,"Skein512-104":45869,"Skein512-112":45870,"Skein512-120":45871,"Skein512-128":45872,"Skein512-136":45873,"Skein512-144":45874,"Skein512-152":45875,"Skein512-160":45876,"Skein512-168":45877,"Skein512-176":45878,"Skein512-184":45879,"Skein512-192":45880,"Skein512-200":45881,"Skein512-208":45882,"Skein512-216":45883,"Skein512-224":45884,"Skein512-232":45885,"Skein512-240":45886,"Skein512-248":45887,"Skein512-256":45888,"Skein512-264":45889,"Skein512-272":45890,"Skein512-280":45891,"Skein512-288":45892,"Skein512-296":45893,"Skein512-304":45894,"Skein512-312":45895,"Skein512-320":45896,"Skein512-328":45897,"Skein512-336":45898,"Skein512-344":45899,"Skein512-352":45900,"Skein512-360":45901,"Skein512-368":45902,"Skein512-376":45903,"Skein512-384":45904,"Skein512-392":45905,"Skein512-400":45906,"Skein512-408":45907,"Skein512-416":45908,"Skein512-424":45909,"Skein512-432":45910,"Skein512-440":45911,"Skein512-448":45912,"Skein512-456":45913,"Skein512-464":45914,"Skein512-472":45915,"Skein512-480":45916,"Skein512-488":45917,"Skein512-496":45918,"Skein512-504":45919,"Skein512-512":45920,"Skein1024-8":45921,"Skein1024-16":45922,"Skein1024-24":45923,"Skein1024-32":45924,"Skein1024-40":45925,"Skein1024-48":45926,"Skein1024-56":45927,"Skein1024-64":45928,"Skein1024-72":45929,"Skein1024-80":45930,"Skein1024-88":45931,"Skein1024-96":45932,"Skein1024-104":45933,"Skein1024-112":45934,"Skein1024-120":45935,"Skein1024-128":45936,"Skein1024-136":45937,"Skein1024-144":45938,"Skein1024-152":45939,"Skein1024-160":45940,"Skein1024-168":45941,"Skein1024-176":45942,"Skein1024-184":45943,"Skein1024-192":45944,"Skein1024-200":45945,"Skein1024-208":45946,"Skein1024-216":45947,"Skein1024-224":45948,"Skein1024-232":45949,"Skein1024-240":45950,"Skein1024-248":45951,"Skein1024-256":45952,"Skein1024-264":45953,"Skein1024-272":45954,"Skein1024-280":45955,"Skein1024-288":45956,"Skein1024-296":45957,"Skein1024-304":45958,"Skein1024-312":45959,"Skein1024-320":45960,"Skein1024-328":45961,"Skein1024-336":45962,"Skein1024-344":45963,"Skein1024-352":45964,"Skein1024-360":45965,"Skein1024-368":45966,"Skein1024-376":45967,"Skein1024-384":45968,"Skein1024-392":45969,"Skein1024-400":45970,"Skein1024-408":45971,"Skein1024-416":45972,"Skein1024-424":45973,"Skein1024-432":45974,"Skein1024-440":45975,"Skein1024-448":45976,"Skein1024-456":45977,"Skein1024-464":45978,"Skein1024-472":45979,"Skein1024-480":45980,"Skein1024-488":45981,"Skein1024-496":45982,"Skein1024-504":45983,"Skein1024-512":45984,"Skein1024-520":45985,"Skein1024-528":45986,"Skein1024-536":45987,"Skein1024-544":45988,"Skein1024-552":45989,"Skein1024-560":45990,"Skein1024-568":45991,"Skein1024-576":45992,"Skein1024-584":45993,"Skein1024-592":45994,"Skein1024-600":45995,"Skein1024-608":45996,"Skein1024-616":45997,"Skein1024-624":45998,"Skein1024-632":45999,"Skein1024-640":46e3,"Skein1024-648":46001,"Skein1024-656":46002,"Skein1024-664":46003,"Skein1024-672":46004,"Skein1024-680":46005,"Skein1024-688":46006,"Skein1024-696":46007,"Skein1024-704":46008,"Skein1024-712":46009,"Skein1024-720":46010,"Skein1024-728":46011,"Skein1024-736":46012,"Skein1024-744":46013,"Skein1024-752":46014,"Skein1024-760":46015,"Skein1024-768":46016,"Skein1024-776":46017,"Skein1024-784":46018,"Skein1024-792":46019,"Skein1024-800":46020,"Skein1024-808":46021,"Skein1024-816":46022,"Skein1024-824":46023,"Skein1024-832":46024,"Skein1024-840":46025,"Skein1024-848":46026,"Skein1024-856":46027,"Skein1024-864":46028,"Skein1024-872":46029,"Skein1024-880":46030,"Skein1024-888":46031,"Skein1024-896":46032,"Skein1024-904":46033,"Skein1024-912":46034,"Skein1024-920":46035,"Skein1024-928":46036,"Skein1024-936":46037,"Skein1024-944":46038,"Skein1024-952":46039,"Skein1024-960":46040,"Skein1024-968":46041,"Skein1024-976":46042,"Skein1024-984":46043,"Skein1024-992":46044,"Skein1024-1000":46045,"Skein1024-1008":46046,"Skein1024-1016":46047,"Skein1024-1024":46048}),t.codes=Object.freeze({0:"identity",17:"sha1",18:"sha2-256",19:"sha2-512",86:"dbl-sha2-256",23:"sha3-224",22:"sha3-256",21:"sha3-384",20:"sha3-512",24:"shake-128",25:"shake-256",26:"keccak-224",27:"keccak-256",28:"keccak-384",29:"keccak-512",34:"murmur3-128",35:"murmur3-32",212:"md4",213:"md5",45569:"blake2b-8",45570:"blake2b-16",45571:"blake2b-24",45572:"blake2b-32",45573:"blake2b-40",45574:"blake2b-48",45575:"blake2b-56",45576:"blake2b-64",45577:"blake2b-72",45578:"blake2b-80",45579:"blake2b-88",45580:"blake2b-96",45581:"blake2b-104",45582:"blake2b-112",45583:"blake2b-120",45584:"blake2b-128",45585:"blake2b-136",45586:"blake2b-144",45587:"blake2b-152",45588:"blake2b-160",45589:"blake2b-168",45590:"blake2b-176",45591:"blake2b-184",45592:"blake2b-192",45593:"blake2b-200",45594:"blake2b-208",45595:"blake2b-216",45596:"blake2b-224",45597:"blake2b-232",45598:"blake2b-240",45599:"blake2b-248",45600:"blake2b-256",45601:"blake2b-264",45602:"blake2b-272",45603:"blake2b-280",45604:"blake2b-288",45605:"blake2b-296",45606:"blake2b-304",45607:"blake2b-312",45608:"blake2b-320",45609:"blake2b-328",45610:"blake2b-336",45611:"blake2b-344",45612:"blake2b-352",45613:"blake2b-360",45614:"blake2b-368",45615:"blake2b-376",45616:"blake2b-384",45617:"blake2b-392",45618:"blake2b-400",45619:"blake2b-408",45620:"blake2b-416",45621:"blake2b-424",45622:"blake2b-432",45623:"blake2b-440",45624:"blake2b-448",45625:"blake2b-456",45626:"blake2b-464",45627:"blake2b-472",45628:"blake2b-480",45629:"blake2b-488",45630:"blake2b-496",45631:"blake2b-504",45632:"blake2b-512",45633:"blake2s-8",45634:"blake2s-16",45635:"blake2s-24",45636:"blake2s-32",45637:"blake2s-40",45638:"blake2s-48",45639:"blake2s-56",45640:"blake2s-64",45641:"blake2s-72",45642:"blake2s-80",45643:"blake2s-88",45644:"blake2s-96",45645:"blake2s-104",45646:"blake2s-112",45647:"blake2s-120",45648:"blake2s-128",45649:"blake2s-136",45650:"blake2s-144",45651:"blake2s-152",45652:"blake2s-160",45653:"blake2s-168",45654:"blake2s-176",45655:"blake2s-184",45656:"blake2s-192",45657:"blake2s-200",45658:"blake2s-208",45659:"blake2s-216",45660:"blake2s-224",45661:"blake2s-232",45662:"blake2s-240",45663:"blake2s-248",45664:"blake2s-256",45825:"Skein256-8",45826:"Skein256-16",45827:"Skein256-24",45828:"Skein256-32",45829:"Skein256-40",45830:"Skein256-48",45831:"Skein256-56",45832:"Skein256-64",45833:"Skein256-72",45834:"Skein256-80",45835:"Skein256-88",45836:"Skein256-96",45837:"Skein256-104",45838:"Skein256-112",45839:"Skein256-120",45840:"Skein256-128",45841:"Skein256-136",45842:"Skein256-144",45843:"Skein256-152",45844:"Skein256-160",45845:"Skein256-168",45846:"Skein256-176",45847:"Skein256-184",45848:"Skein256-192",45849:"Skein256-200",45850:"Skein256-208",45851:"Skein256-216",45852:"Skein256-224",45853:"Skein256-232",45854:"Skein256-240",45855:"Skein256-248",45856:"Skein256-256",45857:"Skein512-8",45858:"Skein512-16",45859:"Skein512-24",45860:"Skein512-32",45861:"Skein512-40",45862:"Skein512-48",45863:"Skein512-56",45864:"Skein512-64",45865:"Skein512-72",45866:"Skein512-80",45867:"Skein512-88",45868:"Skein512-96",45869:"Skein512-104",45870:"Skein512-112",45871:"Skein512-120",45872:"Skein512-128",45873:"Skein512-136",45874:"Skein512-144",45875:"Skein512-152",45876:"Skein512-160",45877:"Skein512-168",45878:"Skein512-176",45879:"Skein512-184",45880:"Skein512-192",45881:"Skein512-200",45882:"Skein512-208",45883:"Skein512-216",45884:"Skein512-224",45885:"Skein512-232",45886:"Skein512-240",45887:"Skein512-248",45888:"Skein512-256",45889:"Skein512-264",45890:"Skein512-272",45891:"Skein512-280",45892:"Skein512-288",45893:"Skein512-296",45894:"Skein512-304",45895:"Skein512-312",45896:"Skein512-320",45897:"Skein512-328",45898:"Skein512-336",45899:"Skein512-344",45900:"Skein512-352",45901:"Skein512-360",45902:"Skein512-368",45903:"Skein512-376",45904:"Skein512-384",45905:"Skein512-392",45906:"Skein512-400",45907:"Skein512-408",45908:"Skein512-416",45909:"Skein512-424",45910:"Skein512-432",45911:"Skein512-440",45912:"Skein512-448",45913:"Skein512-456",45914:"Skein512-464",45915:"Skein512-472",45916:"Skein512-480",45917:"Skein512-488",45918:"Skein512-496",45919:"Skein512-504",45920:"Skein512-512",45921:"Skein1024-8",45922:"Skein1024-16",45923:"Skein1024-24",45924:"Skein1024-32",45925:"Skein1024-40",45926:"Skein1024-48",45927:"Skein1024-56",45928:"Skein1024-64",45929:"Skein1024-72",45930:"Skein1024-80",45931:"Skein1024-88",45932:"Skein1024-96",45933:"Skein1024-104",45934:"Skein1024-112",45935:"Skein1024-120",45936:"Skein1024-128",45937:"Skein1024-136",45938:"Skein1024-144",45939:"Skein1024-152",45940:"Skein1024-160",45941:"Skein1024-168",45942:"Skein1024-176",45943:"Skein1024-184",45944:"Skein1024-192",45945:"Skein1024-200",45946:"Skein1024-208",45947:"Skein1024-216",45948:"Skein1024-224",45949:"Skein1024-232",45950:"Skein1024-240",45951:"Skein1024-248",45952:"Skein1024-256",45953:"Skein1024-264",45954:"Skein1024-272",45955:"Skein1024-280",45956:"Skein1024-288",45957:"Skein1024-296",45958:"Skein1024-304",45959:"Skein1024-312",45960:"Skein1024-320",45961:"Skein1024-328",45962:"Skein1024-336",45963:"Skein1024-344",45964:"Skein1024-352",45965:"Skein1024-360",45966:"Skein1024-368",45967:"Skein1024-376",45968:"Skein1024-384",45969:"Skein1024-392",45970:"Skein1024-400",45971:"Skein1024-408",45972:"Skein1024-416",45973:"Skein1024-424",45974:"Skein1024-432",45975:"Skein1024-440",45976:"Skein1024-448",45977:"Skein1024-456",45978:"Skein1024-464",45979:"Skein1024-472",45980:"Skein1024-480",45981:"Skein1024-488",45982:"Skein1024-496",45983:"Skein1024-504",45984:"Skein1024-512",45985:"Skein1024-520",45986:"Skein1024-528",45987:"Skein1024-536",45988:"Skein1024-544",45989:"Skein1024-552",45990:"Skein1024-560",45991:"Skein1024-568",45992:"Skein1024-576",45993:"Skein1024-584",45994:"Skein1024-592",45995:"Skein1024-600",45996:"Skein1024-608",45997:"Skein1024-616",45998:"Skein1024-624",45999:"Skein1024-632",46e3:"Skein1024-640",46001:"Skein1024-648",46002:"Skein1024-656",46003:"Skein1024-664",46004:"Skein1024-672",46005:"Skein1024-680",46006:"Skein1024-688",46007:"Skein1024-696",46008:"Skein1024-704",46009:"Skein1024-712",46010:"Skein1024-720",46011:"Skein1024-728",46012:"Skein1024-736",46013:"Skein1024-744",46014:"Skein1024-752",46015:"Skein1024-760",46016:"Skein1024-768",46017:"Skein1024-776",46018:"Skein1024-784",46019:"Skein1024-792",46020:"Skein1024-800",46021:"Skein1024-808",46022:"Skein1024-816",46023:"Skein1024-824",46024:"Skein1024-832",46025:"Skein1024-840",46026:"Skein1024-848",46027:"Skein1024-856",46028:"Skein1024-864",46029:"Skein1024-872",46030:"Skein1024-880",46031:"Skein1024-888",46032:"Skein1024-896",46033:"Skein1024-904",46034:"Skein1024-912",46035:"Skein1024-920",46036:"Skein1024-928",46037:"Skein1024-936",46038:"Skein1024-944",46039:"Skein1024-952",46040:"Skein1024-960",46041:"Skein1024-968",46042:"Skein1024-976",46043:"Skein1024-984",46044:"Skein1024-992",46045:"Skein1024-1000",46046:"Skein1024-1008",46047:"Skein1024-1016",46048:"Skein1024-1024"}),t.defaultLengths=Object.freeze({17:20,18:32,19:64,86:32,23:28,22:32,21:48,20:64,24:32,25:64,26:28,27:32,28:48,29:64,34:32,45569:1,45570:2,45571:3,45572:4,45573:5,45574:6,45575:7,45576:8,45577:9,45578:10,45579:11,45580:12,45581:13,45582:14,45583:15,45584:16,45585:17,45586:18,45587:19,45588:20,45589:21,45590:22,45591:23,45592:24,45593:25,45594:26,45595:27,45596:28,45597:29,45598:30,45599:31,45600:32,45601:33,45602:34,45603:35,45604:36,45605:37,45606:38,45607:39,45608:40,45609:41,45610:42,45611:43,45612:44,45613:45,45614:46,45615:47,45616:48,45617:49,45618:50,45619:51,45620:52,45621:53,45622:54,45623:55,45624:56,45625:57,45626:58,45627:59,45628:60,45629:61,45630:62,45631:63,45632:64,45633:1,45634:2,45635:3,45636:4,45637:5,45638:6,45639:7,45640:8,45641:9,45642:10,45643:11,45644:12,45645:13,45646:14,45647:15,45648:16,45649:17,45650:18,45651:19,45652:20,45653:21,45654:22,45655:23,45656:24,45657:25,45658:26,45659:27,45660:28,45661:29,45662:30,45663:31,45664:32,45825:1,45826:2,45827:3,45828:4,45829:5,45830:6,45831:7,45832:8,45833:9,45834:10,45835:11,45836:12,45837:13,45838:14,45839:15,45840:16,45841:17,45842:18,45843:19,45844:20,45845:21,45846:22,45847:23,45848:24,45849:25,45850:26,45851:27,45852:28,45853:29,45854:30,45855:31,45856:32,45857:1,45858:2,45859:3,45860:4,45861:5,45862:6,45863:7,45864:8,45865:9,45866:10,45867:11,45868:12,45869:13,45870:14,45871:15,45872:16,45873:17,45874:18,45875:19,45876:20,45877:21,45878:22,45879:23,45880:24,45881:25,45882:26,45883:27,45884:28,45885:29,45886:30,45887:31,45888:32,45889:33,45890:34,45891:35,45892:36,45893:37,45894:38,45895:39,45896:40,45897:41,45898:42,45899:43,45900:44,45901:45,45902:46,45903:47,45904:48,45905:49,45906:50,45907:51,45908:52,45909:53,45910:54,45911:55,45912:56,45913:57,45914:58,45915:59,45916:60,45917:61,45918:62,45919:63,45920:64,45921:1,45922:2,45923:3,45924:4,45925:5,45926:6,45927:7,45928:8,45929:9,45930:10,45931:11,45932:12,45933:13,45934:14,45935:15,45936:16,45937:17,45938:18,45939:19,45940:20,45941:21,45942:22,45943:23,45944:24,45945:25,45946:26,45947:27,45948:28,45949:29,45950:30,45951:31,45952:32,45953:33,45954:34,45955:35,45956:36,45957:37,45958:38,45959:39,45960:40,45961:41,45962:42,45963:43,45964:44,45965:45,45966:46,45967:47,45968:48,45969:49,45970:50,45971:51,45972:52,45973:53,45974:54,45975:55,45976:56,45977:57,45978:58,45979:59,45980:60,45981:61,45982:62,45983:63,45984:64,45985:65,45986:66,45987:67,45988:68,45989:69,45990:70,45991:71,45992:72,45993:73,45994:74,45995:75,45996:76,45997:77,45998:78,45999:79,46e3:80,46001:81,46002:82,46003:83,46004:84,46005:85,46006:86,46007:87,46008:88,46009:89,46010:90,46011:91,46012:92,46013:93,46014:94,46015:95,46016:96,46017:97,46018:98,46019:99,46020:100,46021:101,46022:102,46023:103,46024:104,46025:105,46026:106,46027:107,46028:108,46029:109,46030:110,46031:111,46032:112,46033:113,46034:114,46035:115,46036:116,46037:117,46038:118,46039:119,46040:120,46041:121,46042:122,46043:123,46044:124,46045:125,46046:126,46047:127,46048:128})},function(e,t,r){"use strict";var n=r(2).Buffer,i=r(365);(t=e.exports=a).encode=function(e,t){var r=s(e);return a(r.name,n.from(r.encode(t)))},t.decode=function(e){n.isBuffer(e)&&(e=e.toString());var t=e.substring(0,1);"string"==typeof(e=e.substring(1,e.length))&&(e=n.from(e));var r=s(t);return n.from(r.decode(e.toString()))},t.isEncoded=function(e){n.isBuffer(e)&&(e=e.toString());if("[object String]"!==Object.prototype.toString.call(e))return!1;var t=e.substring(0,1);try{return s(t).name}catch(e){return!1}},t.names=Object.freeze(Object.keys(i.names)),t.codes=Object.freeze(Object.keys(i.codes));var o=new Error("Unsupported encoding");function a(e,t){if(!t)throw new Error("requires an encoded buffer");var r=s(e),i=n.from(r.code);return function(e,t){s(e).decode(t.toString())}(r.name,t),n.concat([i,t])}function s(e){var t;if(i.names[e])t=i.names[e];else{if(!i.codes[e])throw o;t=i.codes[e]}if(!t.isImplemented())throw new Error("Base "+e+" is not implemented yet");return t}},function(e,t,r){"use strict";var n=r(366),i=r(158),o=r(367),a=r(368),s=r(369),f=[["base1","1","","1"],["base2","0",i,"01"],["base8","7",i,"01234567"],["base10","9",i,"0123456789"],["base16","f",o,"0123456789abcdef"],["base32","b",a,"abcdefghijklmnopqrstuvwxyz234567"],["base32pad","c",a,"abcdefghijklmnopqrstuvwxyz234567="],["base32hex","v",a,"0123456789abcdefghijklmnopqrstuv"],["base32hexpad","t",a,"0123456789abcdefghijklmnopqrstuv="],["base32z","h",a,"ybndrfg8ejkmcpqxot1uwisza345h769"],["base58flickr","Z",i,"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"],["base58btc","z",i,"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"],["base64","m",s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"],["base64pad","M",s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],["base64url","u",s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"],["base64urlpad","U",s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_="]],u=f.reduce((function(e,t){return e[t[0]]=new n(t[0],t[1],t[2],t[3]),e}),{}),c=f.reduce((function(e,t){return e[t[1]]=u[t[0]],e}),{});e.exports={names:u,codes:c}},function(e,t,r){"use strict";var n=r(0),i=n(r(6)),o=n(r(7)),a=function(){function e(t,r,n,o){(0,i.default)(this,e),this.name=t,this.code=r,this.alphabet=o,n&&o&&(this.engine=n(o))}return(0,o.default)(e,[{key:"encode",value:function(e){return this.engine.encode(e)}},{key:"decode",value:function(e){return this.engine.decode(e)}},{key:"isImplemented",value:function(){return this.engine}}]),e}();e.exports=a},function(e,t,r){"use strict";function n(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,f=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){f=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(f)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,f=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){f=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(f)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=5;)s+=t[a>>>o-5&31],o-=5;if(o>0&&(s+=t[a<<5-o&31]),i)for(;s.length%8!=0;)s+="=";return s}e.exports=function(e){return{encode:function(t){return o("string"==typeof t?Uint8Array.from(t):t,e)},decode:function(t){var r,i=n(t);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(e.indexOf(o)<0)throw new Error("invalid base32 character")}}catch(e){i.e(e)}finally{i.f()}return function(e,t){for(var r=(e=e.replace(new RegExp("=","g"),"")).length,n=0,i=0,o=0,a=new Uint8Array(5*r/8|0),s=0;s=8&&(a[o++]=i>>>n-8&255,n-=8);return a.buffer}(t,e)}}}},function(e,t,r){"use strict";function n(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,f=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){f=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(f)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r-1,r=e.indexOf("-")>-1&&e.indexOf("_")>-1;return{encode:function(e){var n="";n="string"==typeof e?o.from(e).toString("base64"):e.toString("base64"),r&&(n=n.replace(/\+/g,"-").replace(/\//g,"_"));var i=n.indexOf("=");return i>0&&!t&&(n=n.substring(0,i)),n},decode:function(t){var r,i=n(t);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(e.indexOf(a)<0)throw new Error("invalid base64 character")}}catch(e){i.e(e)}finally{i.f()}return o.from(t,"base64")}}}},function(e,t,r){"use strict";var n=r(2).Buffer,i=r(49),o=r(371),a=r(372),s=r(159);(t=e.exports).addPrefix=function(e,t){var r;if(n.isBuffer(e))r=s.varintBufferEncode(e);else{if(!a[e])throw new Error("multicodec not recognized");r=a[e]}return n.concat([r,t])},t.rmPrefix=function(e){return i.decode(e),e.slice(i.decode.bytes)},t.getCodec=function(e){var t=i.decode(e),r=o.get(t);if(void 0===r)throw new Error("Code ".concat(t," not found"));return r},t.getName=function(e){return o.get(e)},t.getNumber=function(e){var t=a[e];if(void 0===t)throw new Error("Codec `"+e+"` not found");return s.varintBufferDecode(t)[0]},t.getCode=function(e){return i.decode(e)},t.getCodeVarint=function(e){var t=a[e];if(void 0===t)throw new Error("Codec `"+e+"` not found");return t},t.getVarint=function(e){return i.encode(e)};var f=r(373);Object.assign(t,f),t.print=r(374)},function(e,t,r){"use strict";var n=r(51),i=new Map;for(var o in n){var a=n[o];i.set(a,o)}e.exports=Object.freeze(i)},function(e,t,r){"use strict";var n=r(51),i=r(159).varintEncode,o={};for(var a in n){var s=n[a];o[a]=i(s)}e.exports=Object.freeze(o)},function(e,t,r){"use strict";for(var n=r(0)(r(50)),i=r(51),o={},a=0,s=Object.entries(i);a>1),"0x","0x"],o=t.slice(0,6).concat(i),a=c.encode(o);return f.recover(u.keccak256(a),r)},w.prototype.hashMessage=function(e){var t=b.isHexStrict(e)?e:b.utf8ToHex(e),r=b.hexToBytes(t),i=n.from(r),o="Ethereum Signed Message:\n"+r.length,a=n.from(o),s=n.concat([a,i]);return u.keccak256s(s)},w.prototype.sign=function(e,t){if(t.startsWith("0x")||(t="0x"+t),66!==t.length)throw new Error("Private key must be 32 bytes long");var r=this.hashMessage(e),n=f.sign(r,t),i=f.decodeSignature(n);return{message:e,messageHash:r,v:i[0],r:i[1],s:i[2],signature:n}},w.prototype.recover=function(e,t,r){var n=[].slice.apply(arguments);return o.isObject(e)?this.recover(e.messageHash,f.encodeSignature([e.v,e.r,e.s]),!0):(r||(e=this.hashMessage(e)),n.length>=4?(r=n.slice(-1)[0],r=!!o.isBoolean(r)&&!!r,this.recover(e,f.encodeSignature(n.slice(1,4)),r)):f.recover(e,t))},w.prototype.decrypt=function(e,t,r){if(!o.isString(t))throw new Error("No password given.");var a,s,f=o.isObject(e)?e:JSON.parse(r?e.toLowerCase():e);if(3!==f.version)throw new Error("Not a valid V3 wallet");if("scrypt"===f.crypto.kdf)s=f.crypto.kdfparams,a=l.syncScrypt(n.from(t),n.from(s.salt,"hex"),s.n,s.r,s.p,s.dklen);else{if("pbkdf2"!==f.crypto.kdf)throw new Error("Unsupported key derivation scheme");if("hmac-sha256"!==(s=f.crypto.kdfparams).prf)throw new Error("Unsupported parameters to PBKDF2");a=d.pbkdf2Sync(n.from(t),n.from(s.salt,"hex"),s.c,s.dklen,"sha256")}var u=n.from(f.crypto.ciphertext,"hex");if(b.sha3(n.from([].concat((0,i.default)(a.slice(16,32)),(0,i.default)(u)))).replace("0x","")!==f.crypto.mac)throw new Error("Key derivation failed - possibly wrong password");var c=d.createDecipheriv(f.crypto.cipher,a.slice(0,16),n.from(f.crypto.cipherparams.iv,"hex")),h="0x"+n.from([].concat((0,i.default)(c.update(u)),(0,i.default)(c.final()))).toString("hex");return this.privateKeyToAccount(h,!0)},w.prototype.encrypt=function(e,t,r){var o,a=this.privateKeyToAccount(e,!0),s=(r=r||{}).salt||d.randomBytes(32),f=r.iv||d.randomBytes(16),u=r.kdf||"scrypt",c={dklen:r.dklen||32,salt:s.toString("hex")};if("pbkdf2"===u)c.c=r.c||262144,c.prf="hmac-sha256",o=d.pbkdf2Sync(n.from(t),n.from(c.salt,"hex"),c.c,c.dklen,"sha256");else{if("scrypt"!==u)throw new Error("Unsupported kdf");c.n=r.n||8192,c.r=r.r||8,c.p=r.p||1,o=l.syncScrypt(n.from(t),n.from(c.salt,"hex"),c.n,c.r,c.p,c.dklen)}var h=d.createCipheriv(r.cipher||"aes-128-ctr",o.slice(0,16),f);if(!h)throw new Error("Unsupported cipher");var m=n.from([].concat((0,i.default)(h.update(n.from(a.privateKey.replace("0x",""),"hex"))),(0,i.default)(h.final()))),v=b.sha3(n.from([].concat((0,i.default)(o.slice(16,32)),(0,i.default)(m)))).replace("0x","");return{version:3,id:p.v4({random:r.uuid||d.randomBytes(16)}),address:a.address.toLowerCase().replace("0x",""),crypto:{ciphertext:m.toString("hex"),cipherparams:{iv:f.toString("hex")},cipher:r.cipher||"aes-128-ctr",kdf:u,kdfparams:c,mac:v.toString("hex")}}},_.prototype._findSafeIndex=function(e){return e=e||0,o.has(this,e)?this._findSafeIndex(e+1):e},_.prototype._currentIndexes=function(){return Object.keys(this).map((function(e){return parseInt(e)})).filter((function(e){return e<9e20}))},_.prototype.create=function(e,t){for(var r=0;r7?e[n+2].toUpperCase():e[n+2];return r},d=function(e){var r=new t(e.slice(2),"hex"),n="0x"+s.keyFromPrivate(r).getPublic(!1,"hex").slice(2),i=u(n);return{address:h("0x"+i.slice(-40)),privateKey:e}},l=function(e){var t=(0,n.default)(e,3),r=t[0],o=t[1],a=t[2];return i.flatten([o,a,r])},p=function(e){return[i.slice(64,i.length(e),e),i.slice(0,32,e),i.slice(32,64,e)]},b=function(e){return function(r,n){var a=s.keyFromPrivate(new t(n.slice(2),"hex")).sign(new t(r.slice(2),"hex"),{canonical:!0});return l([o.fromString(i.fromNumber(e+a.recoveryParam)),i.pad(32,i.fromNat("0x"+a.r.toString(16))),i.pad(32,i.fromNat("0x"+a.s.toString(16)))])}},m=b(27);e.exports={create:function(e){var t=u(i.concat(i.random(32),e||i.random(32))),r=i.concat(i.concat(i.random(32),t),i.random(32)),n=u(r);return d(n)},toChecksum:h,fromPrivate:d,sign:m,makeSigner:b,recover:function(e,r){var n=p(r),o={v:i.toNumber(n[0]),r:n[1].slice(2),s:n[2].slice(2)},a="0x"+s.recoverPubKey(new t(e.slice(2),"hex"),o,o.v<2?o.v:1-o.v%2).encode("hex",!1).slice(2),f=u(a);return h("0x"+f.slice(-40))},encodeSignature:l,decodeSignature:p}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n=function(e,t){for(var r=[],n=0;n>>2}function c(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(f,i),f.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},f.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,f=0|this._e,h=0;h<16;++h)r[h]=e.readInt32BE(4*h);for(;h<80;++h)r[h]=r[h-3]^r[h-8]^r[h-14]^r[h-16];for(var d=0;d<80;++d){var l=~~(d/20),p=0|((t=n)<<5|t>>>27)+c(l,i,o,s)+f+r[d]+a[l];f=s,s=o,o=u(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=f+this._e|0},f.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=f},function(e,t,r){"use strict";var n=r(3),i=r(39),o=r(5).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function f(){this.init(),this._w=s,i.call(this,64,56)}function u(e){return e<<5|e>>>27}function c(e){return e<<30|e>>>2}function h(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(f,i),f.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},f.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,f=0|this._e,d=0;d<16;++d)r[d]=e.readInt32BE(4*d);for(;d<80;++d)r[d]=(t=r[d-3]^r[d-8]^r[d-14]^r[d-16])<<1|t>>>31;for(var l=0;l<80;++l){var p=~~(l/20),b=u(n)+h(p,i,o,s)+f+r[l]+a[p]|0;f=s,s=o,o=c(i),i=n,n=b}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=f+this._e|0},f.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=f},function(e,t,r){"use strict";var n=r(3),i=r(162),o=r(39),a=r(5).Buffer,s=new Array(64);function f(){this.init(),this._w=s,o.call(this,64,56)}n(f,i),f.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},f.prototype._hash=function(){var e=a.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=f},function(e,t,r){"use strict";var n=r(3),i=r(163),o=r(39),a=r(5).Buffer,s=new Array(160);function f(){this.init(),this._w=s,o.call(this,128,112)}n(f,i),f.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},f.prototype._hash=function(){var e=a.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=f},function(e,t,r){"use strict";var n=r(3),i=r(5).Buffer,o=r(30),a=i.alloc(128);function s(e,t){o.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>64?t=e(t):t.length<64&&(t=i.concat([t,a],64));for(var r=this._ipad=i.allocUnsafe(64),n=this._opad=i.allocUnsafe(64),s=0;s<64;s++)r[s]=54^t[s],n[s]=92^t[s];this._hash=[r]}n(s,o),s.prototype._update=function(e){this._hash.push(e)},s.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},e.exports=s},function(e,t,r){"use strict";e.exports=r(166)},function(e,t,r){"use strict";(function(t,n){var i,o=r(168),a=r(169),s=r(170),f=r(5).Buffer,u=t.crypto&&t.crypto.subtle,c={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},h=[];function d(e,t,r,n,i){return u.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return u.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:i}},e,n<<3)})).then((function(e){return f.from(e)}))}e.exports=function(e,r,l,p,b,m){"function"==typeof b&&(m=b,b=void 0);var v=c[(b=b||"sha1").toLowerCase()];if(!v||"function"!=typeof t.Promise)return n.nextTick((function(){var t;try{t=s(e,r,l,p,b)}catch(e){return m(e)}m(null,t)}));if(o(e,r,l,p),"function"!=typeof m)throw new Error("No callback provided to pbkdf2");f.isBuffer(e)||(e=f.from(e,a)),f.isBuffer(r)||(r=f.from(r,a)),function(e,t){e.then((function(e){n.nextTick((function(){t(null,e)}))}),(function(e){n.nextTick((function(){t(e)}))}))}(function(e){if(t.process&&!t.process.browser)return Promise.resolve(!1);if(!u||!u.importKey||!u.deriveBits)return Promise.resolve(!1);if(void 0!==h[e])return h[e];var r=d(i=i||f.alloc(8),i,10,128,e).then((function(){return!0})).catch((function(){return!1}));return h[e]=r,r}(v).then((function(t){return t?d(e,r,l,p,v):s(e,r,l,p,b)})),m)}}).call(this,r(8),r(9))},function(e,t,r){"use strict";var n=r(400),i=r(95),o=r(96),a=r(415),s=r(71);function f(e,t,r){if(e=e.toLowerCase(),o[e])return i.createCipheriv(e,t,r);if(a[e])return new n({key:t,iv:r,mode:e});throw new TypeError("invalid suite type")}function u(e,t,r){if(e=e.toLowerCase(),o[e])return i.createDecipheriv(e,t,r);if(a[e])return new n({key:t,iv:r,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var r,n;if(e=e.toLowerCase(),o[e])r=o[e].key,n=o[e].iv;else{if(!a[e])throw new TypeError("invalid suite type");r=8*a[e].key,n=a[e].iv}var i=s(t,!1,r,n);return f(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=f,t.createDecipher=t.Decipher=function(e,t){var r,n;if(e=e.toLowerCase(),o[e])r=o[e].key,n=o[e].iv;else{if(!a[e])throw new TypeError("invalid suite type");r=8*a[e].key,n=a[e].iv}var i=s(t,!1,r,n);return u(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=u,t.listCiphers=t.getCiphers=function(){return Object.keys(a).concat(i.getCiphers())}},function(e,t,r){"use strict";var n=r(30),i=r(94),o=r(3),a=r(5).Buffer,s={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function f(e){n.call(this);var t,r=e.mode.toLowerCase(),i=s[r];t=e.decrypt?"decrypt":"encrypt";var o=e.key;a.isBuffer(o)||(o=a.from(o)),"des-ede"!==r&&"des-ede-cbc"!==r||(o=a.concat([o,o.slice(0,8)]));var f=e.iv;a.isBuffer(f)||(f=a.from(f)),this._des=i.create({key:o,iv:f,type:t})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],e.exports=f,o(f,n),f.prototype._update=function(e){return a.from(this._des.update(e))},f.prototype._final=function(){return a.from(this._des.final())}},function(e,t,r){"use strict";t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,r){e[0+r]=t>>>24,e[1+r]=t>>>16&255,e[2+r]=t>>>8&255,e[3+r]=255&t},t.ip=function(e,t,r,n){for(var i=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=t>>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1}r[n+0]=i>>>0,r[n+1]=o>>>0},t.rip=function(e,t,r,n){for(var i=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)i<<=1,i|=t>>>s+a&1,i<<=1,i|=e>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=t>>>s+a&1,o<<=1,o|=e>>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},t.pc1=function(e,t,r,n){for(var i=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},t.r28shl=function(e,t){return e<>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,i){for(var o=0,a=0,s=n.length>>>1,f=0;f>>n[f]&1;for(f=s;f>>n[f]&1;r[i+0]=o>>>0,r[i+1]=a>>>0},t.expand=function(e,t,r){var n=0,i=0;n=(1&e)<<5|e>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=e>>>o&63;for(o=11;o>=3;o-=4)i|=e>>>o&63,i<<=6;i|=(31&e)<<1|e>>>31,t[r+0]=n>>>0,t[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var r=0,n=0;n<4;n++){r<<=4,r|=i[64*n+(e>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=i[256+64*n+(t>>>18-6*n&63)]}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,r=0;r>>o[r]&1;return t>>>0},t.padSplit=function(e,t,r){for(var n=e.toString(2);n.length0;n--)t+=this._buffer(e,t),r+=this._flushBuffer(i,r);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,r;return e&&(t=this.update(e)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(r):r},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t>>1];r=a.r28shl(r,s),i=a.r28shl(i,s),a.pc2(r,i,e.keys,o)}},u.prototype._update=function(e,t,r,n){var i=this._desState,o=a.readUInt32BE(e,t),s=a.readUInt32BE(e,t+4);a.ip(o,s,i.tmp,0),o=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,o,s,i.tmp,0):this._decrypt(i,o,s,i.tmp,0),o=i.tmp[0],s=i.tmp[1],a.writeUInt32BE(r,o,n),a.writeUInt32BE(r,s,n+4)},u.prototype._pad=function(e,t){for(var r=e.length-t,n=t;n>>0,o=d}a.rip(s,o,n,i)},u.prototype._decrypt=function(e,t,r,n,i){for(var o=r,s=t,f=e.keys.length-2;f>=0;f-=2){var u=e.keys[f],c=e.keys[f+1];a.expand(o,e.tmp,0),u^=e.tmp[0],c^=e.tmp[1];var h=a.substitute(u,c),d=o;o=(s^a.permute(h))>>>0,s=d}a.rip(o,s,n,i)}},function(e,t,r){"use strict";var n=r(18),i=r(3),o={};function a(e){n.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=o.allocUnsafe(e),r=-1;++r>a%8,e._prev=o(e._prev,r?n:i);return s}function o(e,t){var r=e.length,i=-1,o=n.allocUnsafe(e.length);for(e=n.concat([e,n.from([t])]);++i>7;return o}t.encrypt=function(e,t,r){for(var o=t.length,a=n.allocUnsafe(o),s=-1;++s>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function a(e){this.h=e,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}a.prototype.ghash=function(e){for(var t=-1;++t0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=o(i)},a.prototype.update=function(e){var t;for(this.cache=n.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},a.prototype.final=function(e,t){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(o([0,e,0,t])),this.state},e.exports=a},function(e,t,r){"use strict";var n=r(174),i=r(5).Buffer,o=r(96),a=r(175),s=r(30),f=r(70),u=r(71);function c(e,t,r){s.call(this),this._cache=new h,this._last=void 0,this._cipher=new f.AES(t),this._prev=i.from(r),this._mode=e,this._autopadding=!0}function h(){this.cache=i.allocUnsafe(0)}function d(e,t,r){var s=o[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof r&&(r=i.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);if("string"==typeof t&&(t=i.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===s.type?new a(s.module,t,r,!0):"auth"===s.type?new n(s.module,t,r,!0):new c(s.module,t,r)}r(3)(c,s),c.prototype._update=function(e){var t,r;this._cache.add(e);for(var n=[];t=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,t),n.push(r);return i.concat(n)},c.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");var r=-1;for(;++r16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},h.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var r=o[e.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=u(t,!1,r.key,r.iv);return d(e,n.key,n.iv)},t.createDecipheriv=d},function(e,t,r){"use strict";t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},function(e,t,r){"use strict";(function(e){var n=r(176),i=r(417),o=r(418);var a={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(t){var r=new e(i[t].prime,"hex"),n=new e(i[t].gen,"hex");return new o(r,n)},t.createDiffieHellman=t.DiffieHellman=function t(r,i,s,f){return e.isBuffer(i)||void 0===a[i]?t(r,"binary",i,s):(i=i||"binary",f=f||"binary",s=s||new e([2]),e.isBuffer(s)||(s=new e(s,f)),"number"==typeof r?new o(n(r,s),s,!0):(e.isBuffer(r)||(r=new e(r,i)),new o(r,s,!0)))}}).call(this,r(2).Buffer)},function(e){e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(e,t,r){"use strict";(function(t){var n=r(4),i=new(r(177)),o=new n(24),a=new n(11),s=new n(10),f=new n(3),u=new n(7),c=r(176),h=r(32);function d(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this._pub=new n(e),this}function l(e,r){return r=r||"utf8",t.isBuffer(e)||(e=new t(e,r)),this._priv=new n(e),this}e.exports=b;var p={};function b(e,t,r){this.setGenerator(t),this.__prime=new n(e),this._prime=n.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=d,this.setPrivateKey=l):this._primeCode=8}function m(e,r){var n=new t(e.toArray());return r?n.toString(r):n}Object.defineProperty(b.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var r=t.toString("hex"),n=[r,e.toString(16)].join("_");if(n in p)return p[n];var h,d=0;if(e.isEven()||!c.simpleSieve||!c.fermatTest(e)||!i.test(e))return d+=1,d+="02"===r||"05"===r?8:4,p[n]=d,d;switch(i.test(e.shrn(1))||(d+=2),r){case"02":e.mod(o).cmp(a)&&(d+=8);break;case"05":(h=e.mod(s)).cmp(f)&&h.cmp(u)&&(d+=8);break;default:d+=4}return p[n]=d,d}(this.__prime,this.__gen)),this._primeCode}}),b.prototype.generateKeys=function(){return this._priv||(this._priv=new n(h(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},b.prototype.computeSecret=function(e){var r=(e=(e=new n(e)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new t(r.toArray()),o=this.getPrime();if(i.length0&&r.ishrn(n),r}function h(e,r,i){var o,a;do{for(o=new t(0);8*o.length=0&&(a=t,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a:a,b:s}]},f.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),f=i.mul(r.b),u=o.mul(n.b);return{k1:e.sub(a).sub(s),k2:f.add(u).neg()}},f.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},f.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},f.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},u.prototype.isInfinity=function(){return this.inf},u.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},u.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},u.prototype.getX=function(){return this.x.fromRed()},u.prototype.getY=function(){return this.y.fromRed()},u.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},u.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},u.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},u.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},u.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},u.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(c,a.BasePoint),f.prototype.jpoint=function(e,t,r){return new c(this,e,t,r)},c.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},c.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},c.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(i),f=o.redSub(a);if(0===s.cmpn(0))return 0!==f.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),c=u.redMul(s),h=n.redMul(u),d=f.redSqr().redIAdd(c).redISub(h).redISub(h),l=f.redMul(h.redISub(d)).redISub(o.redMul(c)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(d,l,p)},c.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=a.redSqr(),u=f.redMul(a),c=r.redMul(f),h=s.redSqr().redIAdd(u).redISub(c).redISub(c),d=s.redMul(c.redISub(h)).redISub(i.redMul(u)),l=this.z.redMul(a);return this.curve.jpoint(h,d,l)},c.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(4),i=r(3),o=r(73),a=r(22);function s(e){o.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function f(e,t,r){o.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,o),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(f,o.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new f(this,e,t)},s.prototype.pointFromJSON=function(e){return f.fromJSON(this,e)},f.prototype.precompute=function(){},f.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},f.fromJSON=function(e,t){return new f(e,t[0],t[1]||e.one)},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},f.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},f.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(r),a=i.redMul(n),s=t.z.redMul(o.redAdd(a).redSqr()),f=t.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,f)},f.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},f.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},f.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(22),i=r(4),o=r(3),a=r(73),s=n.assert;function f(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,a.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function u(e,t,r,n,o){a.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(f,a),e.exports=f,f.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},f.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},f.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},f.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var f=s.fromRed().isOdd();return(t&&!f||!t&&f)&&(s=s.redNeg()),this.point(e,s)},f.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},f.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},o(u,a.BasePoint),f.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},f.prototype.point=function(e,t,r,n){return new u(this,e,t,r,n)},u.fromJSON=function(e,t){return new u(e,t[0],t[1],t[2])},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},u.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=n.redAdd(t),a=o.redSub(r),s=n.redSub(t),f=i.redMul(a),u=o.redMul(s),c=i.redMul(s),h=a.redMul(o);return this.curve.point(f,u,h,c)},u.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=(u=this.curve._mulA(i)).redAdd(o);if(this.zOne)e=n.redSub(i).redSub(o).redMul(a.redSub(this.curve.two)),t=a.redMul(u.redSub(o)),r=a.redSqr().redSub(a).redSub(a);else{var s=this.z.redSqr(),f=a.redSub(s).redISub(s);e=n.redSub(i).redISub(o).redMul(f),t=a.redMul(u.redSub(o)),r=a.redMul(f)}}else{var u=i.redAdd(o);s=this.curve._mulC(this.z).redSqr(),f=u.redSub(s).redSub(s);e=this.curve._mulC(n.redISub(u)).redMul(f),t=this.curve._mulC(u).redMul(i.redISub(o)),r=u.redMul(f)}return this.curve.point(e,t,r)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},u.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),o=r.redSub(t),a=i.redSub(n),s=i.redAdd(n),f=r.redAdd(t),u=o.redMul(a),c=s.redMul(f),h=o.redMul(f),d=a.redMul(s);return this.curve.point(u,c,d,h)},u.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),o=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(o).redMul(a),f=i.redSub(s),u=i.redAdd(s),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(a),h=n.redMul(f).redMul(c);return this.curve.twisted?(t=n.redMul(u).redMul(a.redSub(this.curve._mulA(o))),r=f.redMul(u)):(t=n.redMul(u).redMul(a.redSub(o)),r=this.curve._mulC(f).redMul(u)),this.curve.point(h,t,r)},u.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},u.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},u.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},u.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},u.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},u.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()},u.prototype.getY=function(){return this.normalize(),this.y.fromRed()},u.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},u.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},u.prototype.toP=u.prototype.normalize,u.prototype.mixedAdd=u.prototype.add},function(e,t,r){"use strict";e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(4),o=r(133),a=r(22),s=r(98),f=r(45),u=a.assert,c=r(427),h=r(428);function d(e){if(!(this instanceof d))return new d(e);"string"==typeof e&&(u(s.hasOwnProperty(e),"Unknown curve "+e),e=s[e]),e instanceof s.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=d,d.prototype.keyPair=function(e){return new c(this,e)},d.prototype.keyFromPrivate=function(e,t){return c.fromPrivate(this,e,t)},d.prototype.keyFromPublic=function(e,t){return c.fromPublic(this,e,t)},d.prototype.genKeyPair=function(e){e||(e={});for(var t=new o({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||f(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new i(2));;){var a=new i(t.generate(r));if(!(a.cmp(n)>0))return a.iaddn(1),this.keyFromPrivate(a)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,a){"object"===(0,n.default)(r)&&(a=r,r=null),a||(a={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new i(e,16));for(var s=this.n.byteLength(),f=t.getPrivate().toArray("be",s),u=e.toArray("be",s),c=new o({hash:this.hash,entropy:f,nonce:u,pers:a.pers,persEnc:a.persEnc||"utf8"}),d=this.n.sub(new i(1)),l=0;;l++){var p=a.k?a.k(l):new i(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var b=this.g.mul(p);if(!b.isInfinity()){var m=b.getX(),v=m.umod(this.n);if(0!==v.cmpn(0)){var y=p.invm(this.n).mul(v.mul(t.getPrivate()).iadd(e));if(0!==(y=y.umod(this.n)).cmpn(0)){var g=(b.getY().isOdd()?1:0)|(0!==m.cmp(v)?2:0);return a.canonical&&y.cmp(this.nh)>0&&(y=this.n.sub(y),g^=1),new h({r:v,s:y,recoveryParam:g})}}}}}},d.prototype.verify=function(e,t,r,n){e=this._truncateToN(new i(e,16)),r=this.keyFromPublic(r,n);var o=(t=new h(t,"hex")).r,a=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,f=a.invm(this.n),u=f.mul(e).umod(this.n),c=f.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(u,r.getPublic(),c)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(u,r.getPublic(),c)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},d.prototype.recoverPubKey=function(e,t,r,n){u((3&r)===r,"The recovery param is more than two bits"),t=new h(t,n);var o=this.n,a=new i(e),s=t.r,f=t.s,c=1&r,d=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");s=d?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var l=t.r.invm(o),p=o.sub(a).mul(l).umod(o),b=f.mul(l).umod(o);return this.g.mulAdd(p,s,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new h(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(4),i=r(22).assert;function o(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=o,o.fromPublic=function(e,t,r){return t instanceof o?t:new o(e,{pub:t,pubEnc:r})},o.fromPrivate=function(e,t,r){return t instanceof o?t:new o(e,{priv:t,privEnc:r})},o.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},o.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(e,t){this.priv=new n(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},o.prototype.derive=function(e){return e.mul(this.priv).getX()},o.prototype.sign=function(e,t,r){return this.ec.sign(e,this,t,r)},o.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},o.prototype.inspect=function(){return""}},function(e,t,r){"use strict";var n=r(4),i=r(22),o=i.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function f(e,t){var r=e[t.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=t.place;o>>=0;return!(i<=127)&&(t.place=a,i)}function u(e){for(var t=0,r=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=a,a.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new s;if(48!==e[r.place++])return!1;var o=f(e,r);if(!1===o)return!1;if(o+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var a=f(e,r);if(!1===a)return!1;var u=e.slice(r.place,a+r.place);if(r.place+=a,2!==e[r.place++])return!1;var c=f(e,r);if(!1===c)return!1;if(e.length!==c+r.place)return!1;var h=e.slice(r.place,c+r.place);if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new n(u),this.s=new n(h),this.recoveryParam=null,!0},a.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=u(t),r=u(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];c(n,t.length),(n=n.concat(t)).push(2),c(n,r.length);var o=n.concat(r),a=[48];return c(a,o.length),a=a.concat(o),i.encode(a,e)}},function(e,t,r){"use strict";var n=r(46),i=r(98),o=r(22),a=o.assert,s=o.parseBytes,f=r(430),u=r(431);function c(e){if(a("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof c))return new c(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=c,c.prototype.sign=function(e,t){e=s(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),o=this.encodePoint(i),a=this.hashInt(o,r.pubBytes(),e).mul(r.priv()),f=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:f,Rencoded:o})},c.prototype.verify=function(e,t,r){e=s(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(o)},c.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=t)throw new Error("invalid sig")}e.exports=function(e,r,f,u,c){var h=o(f);if("ec"===h.type){if("ecdsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");return function(e,t,r){var n=a[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var o=new i(n),s=r.data.subjectPrivateKey.data;return o.verify(t,e,s)}(e,r,h)}if("dsa"===h.type){if("dsa"!==u)throw new Error("wrong public key type");return function(e,t,r){var i=r.data.p,a=r.data.q,f=r.data.g,u=r.data.pub_key,c=o.signature.decode(e,"der"),h=c.s,d=c.r;s(h,a),s(d,a);var l=n.mont(i),p=h.invm(a);return 0===f.toRed(l).redPow(new n(t).mul(p).mod(a)).fromRed().mul(u.toRed(l).redPow(d.mul(p).mod(a)).fromRed()).mod(i).mod(a).cmp(d)}(e,r,h)}if("rsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");r=t.concat([c,r]);for(var d=h.modulus.byteLength(),l=[1],p=0;r.length+l.length+2r-d-2)throw new Error("message too long");var l=h.alloc(r-n-d-2),p=r-c-1,b=i(c),m=s(h.concat([u,l,h.alloc(1,1),t],p),a(b,p)),v=s(b,a(m,c));return new f(h.concat([h.alloc(1),v,m],r))}(p,t);else if(1===d)l=function(e,t,r){var n,o=t.length,a=e.modulus.byteLength();if(o>a-11)throw new Error("message too long");n=r?h.alloc(a-o-3,255):function(e){var t,r=h.allocUnsafe(e),n=0,o=i(2*e),a=0;for(;n=0)throw new Error("data too long for modulus")}return r?c(l,p):u(l,p)}},function(e,t,r){"use strict";var n=r(74),i=r(184),o=r(185),a=r(4),s=r(97),f=r(52),u=r(186),c=r(5).Buffer;e.exports=function(e,t,r){var h;h=e.padding?e.padding:r?1:4;var d,l=n(e),p=l.modulus.byteLength();if(t.length>p||new a(t).cmp(l.modulus)>=0)throw new Error("decryption error");d=r?u(new a(t),l):s(t,l);var b=c.alloc(p-d.length);if(d=c.concat([b,d],p),4===h)return function(e,t){var r=e.modulus.byteLength(),n=f("sha1").update(c.alloc(0)).digest(),a=n.length;if(0!==t[0])throw new Error("decryption error");var s=t.slice(1,a+1),u=t.slice(a+1),h=o(s,i(u,a)),d=o(u,i(h,r-a-1));if(function(e,t){e=c.from(e),t=c.from(t);var r=0,n=e.length;e.length!==t.length&&(r++,n=Math.min(e.length,t.length));var i=-1;for(;++i=t.length){o++;break}var a=t.slice(2,i-1);("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++;a.length<8&&o++;if(o)throw new Error("decryption error");return t.slice(i)}(0,d,r);if(3===h)return d;throw new Error("unknown padding")}},function(e,t,r){"use strict";(function(e,n){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=r(5),a=r(32),s=o.Buffer,f=o.kMaxLength,u=e.crypto||e.msCrypto,c=Math.pow(2,32)-1;function h(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>c||e<0)throw new TypeError("offset must be a uint32");if(e>f||e>t)throw new RangeError("offset out of range")}function d(e,t,r){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>c||e<0)throw new TypeError("size must be a uint32");if(e+t>r||e>f)throw new RangeError("buffer too small")}function l(e,t,r,i){if(n.browser){var o=e.buffer,s=new Uint8Array(o,t,r);return u.getRandomValues(s),i?void n.nextTick((function(){i(null,e)})):e}if(!i)return a(r).copy(e,t),e;a(r,(function(r,n){if(r)return i(r);n.copy(e,t),i(null,e)}))}u&&u.getRandomValues||!n.browser?(t.randomFill=function(t,r,n,i){if(!(s.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof r)i=r,r=0,n=t.length;else if("function"==typeof n)i=n,n=t.length-r;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return h(r,t.length),d(n,r,t.length),l(t,r,n,i)},t.randomFillSync=function(t,r,n){void 0===r&&(r=0);if(!(s.isBuffer(t)||t instanceof e.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');h(r,t.length),void 0===n&&(n=t.length-r);return d(n,r,t.length),l(t,r,n)}):(t.randomFill=i,t.randomFillSync=i)}).call(this,r(8),r(9))},function(e,t,r){"use strict";var n=r(4),i=r(90),o=function(e){return new n(e.slice(2),16)},a=function(e){var t="0x"+("0x"===e.slice(0,2)?new n(e.slice(2),16):new n(e,10)).toString("hex");return"0x0"===t?"0x":t},s=function(e){return"string"==typeof e?/^0x/.test(e)?e:"0x"+e:"0x"+new n(e).toString("hex")},f=function(e){return o(e).toNumber()},u=function(e){return function(t,r){return"0x"+o(t)[e](o(r)).toString("hex")}},c=u("add"),h=u("mul"),d=u("div"),l=u("sub");e.exports={toString:function(e){return o(e).toString(10)},fromString:a,toNumber:f,fromNumber:s,toEther:function(e){return f(d(e,a("10000000000")))/1e8},fromEther:function(e){return h(s(Math.floor(1e8*e)),a("10000000000"))},toUint256:function(e){return i.pad(32,e)},add:c,mul:h,div:d,sub:l}},function(e,t,r){"use strict";(function(t){!function(r){function n(e){var t=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),r=1779033703,n=3144134277,i=1013904242,o=2773480762,a=1359893119,s=2600822924,f=528734635,u=1541459225,c=new Uint32Array(64);function h(e){for(var h=0,d=e.length;d>=64;){var l=r,p=n,b=i,m=o,v=a,y=s,g=f,w=u,_=void 0,k=void 0,A=void 0,S=void 0,E=void 0;for(k=0;k<16;k++)A=h+4*k,c[k]=(255&e[A])<<24|(255&e[A+1])<<16|(255&e[A+2])<<8|255&e[A+3];for(k=16;k<64;k++)S=((_=c[k-2])>>>17|_<<15)^(_>>>19|_<<13)^_>>>10,E=((_=c[k-15])>>>7|_<<25)^(_>>>18|_<<14)^_>>>3,c[k]=(S+c[k-7]|0)+(E+c[k-16]|0)|0;for(k=0;k<64;k++)S=(((v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7))+(v&y^~v&g)|0)+(w+(t[k]+c[k]|0)|0)|0,E=((l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10))+(l&p^l&b^p&b)|0,w=g,g=y,y=v,v=m+S|0,m=b,b=p,p=l,l=S+E|0;r=r+l|0,n=n+p|0,i=i+b|0,o=o+m|0,a=a+v|0,s=s+y|0,f=f+g|0,u=u+w|0,h+=64,d-=64}}h(e);var d,l=e.length%64,p=e.length/536870912|0,b=e.length<<3,m=l<56?56:120,v=e.slice(e.length-l,e.length);for(v.push(128),d=l+1;d>>24&255),v.push(p>>>16&255),v.push(p>>>8&255),v.push(p>>>0&255),v.push(b>>>24&255),v.push(b>>>16&255),v.push(b>>>8&255),v.push(b>>>0&255),h(v),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,f>>>24&255,f>>>16&255,f>>>8&255,f>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255]}function i(e,t,r){e=e.length<=64?e:n(e);var i,o=64+t.length+4,a=new Array(o),s=new Array(64),f=[];for(i=0;i<64;i++)a[i]=54;for(i=0;i=o-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;r>=32;)u(),f=f.concat(n(s.concat(n(a)))),r-=32;return r>0&&(u(),f=f.concat(n(s.concat(n(a))).slice(0,r))),f}function o(e,t,r,n,i){var o;for(u(e,16*(2*r-1),i,0,16),o=0;o<2*r;o++)f(e,16*o,i,16),s(i,n),u(i,0,e,t+16*o,16);for(o=0;o>>32-t}function s(e,t){u(e,0,t,0,16);for(var r=8;r>0;r-=2)t[4]^=a(t[0]+t[12],7),t[8]^=a(t[4]+t[0],9),t[12]^=a(t[8]+t[4],13),t[0]^=a(t[12]+t[8],18),t[9]^=a(t[5]+t[1],7),t[13]^=a(t[9]+t[5],9),t[1]^=a(t[13]+t[9],13),t[5]^=a(t[1]+t[13],18),t[14]^=a(t[10]+t[6],7),t[2]^=a(t[14]+t[10],9),t[6]^=a(t[2]+t[14],13),t[10]^=a(t[6]+t[2],18),t[3]^=a(t[15]+t[11],7),t[7]^=a(t[3]+t[15],9),t[11]^=a(t[7]+t[3],13),t[15]^=a(t[11]+t[7],18),t[1]^=a(t[0]+t[3],7),t[2]^=a(t[1]+t[0],9),t[3]^=a(t[2]+t[1],13),t[0]^=a(t[3]+t[2],18),t[6]^=a(t[5]+t[4],7),t[7]^=a(t[6]+t[5],9),t[4]^=a(t[7]+t[6],13),t[5]^=a(t[4]+t[7],18),t[11]^=a(t[10]+t[9],7),t[8]^=a(t[11]+t[10],9),t[9]^=a(t[8]+t[11],13),t[10]^=a(t[9]+t[8],18),t[12]^=a(t[15]+t[14],7),t[13]^=a(t[12]+t[15],9),t[14]^=a(t[13]+t[12],13),t[15]^=a(t[14]+t[13],18);for(var n=0;n<16;++n)e[n]+=t[n]}function f(e,t,r,n){for(var i=0;i=256)return!1}return!0}function h(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function d(e,r,n,a,s,d,l){if(n=h(n,"N"),a=h(a,"r"),s=h(s,"p"),d=h(d,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>2147483647/128/a)throw new Error("N too large");if(a>2147483647/128/s)throw new Error("r too large");if(!c(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!c(r))throw new Error("salt must be an array or buffer");r=Array.prototype.slice.call(r);for(var p=i(e,r,128*s*a),b=new Uint32Array(32*s*a),m=0;mO&&(r=O);for(var c=0;cO&&(r=O);for(var m=0;m>0&255),p.push(b[C]>>8&255),p.push(b[C]>>16&255),p.push(b[C]>>24&255);var B=i(e,p,d);return l&&l(null,1,B),B}l&&R(t)};if(!l)for(;;){var C=U();if(null!=C)return C}U()}var l={scrypt:function(e,t,r,n,i,o,a){return new Promise((function(s,f){var u=0;a&&a(0),d(e,t,r,n,i,o,(function(e,t,r){if(e)f(e);else if(r)a&&1!==u&&a(1),s(new Uint8Array(r));else if(a&&t!==u)return u=t,a(t)}))}))},syncScrypt:function(e,t,r,n,i,o){return new Uint8Array(d(e,t,r,n,i,o))}};e.exports=l}()}).call(this,r(120).setImmediate)},function(e,t,r){"use strict";var n=r(454),i=r(455),o=i;o.v1=n,o.v4=i,e.exports=o},function(e,t,r){"use strict";var n,i,o=r(188),a=r(189),s=0,f=0;e.exports=function(e,t,r){var u=t&&r||0,c=t||[],h=(e=e||{}).node||n,d=void 0!==e.clockseq?e.clockseq:i;if(null==h||null==d){var l=o();null==h&&(h=n=[1|l[0],l[1],l[2],l[3],l[4],l[5]]),null==d&&(d=i=16383&(l[6]<<8|l[7]))}var p=void 0!==e.msecs?e.msecs:(new Date).getTime(),b=void 0!==e.nsecs?e.nsecs:f+1,m=p-s+(b-f)/1e4;if(m<0&&void 0===e.clockseq&&(d=d+1&16383),(m<0||p>s)&&void 0===e.nsecs&&(b=0),b>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");s=p,f=b,i=d;var v=(1e4*(268435455&(p+=122192928e5))+b)%4294967296;c[u++]=v>>>24&255,c[u++]=v>>>16&255,c[u++]=v>>>8&255,c[u++]=255&v;var y=p/4294967296*1e4&268435455;c[u++]=y>>>8&255,c[u++]=255&y,c[u++]=y>>>24&15|16,c[u++]=y>>>16&255,c[u++]=d>>>8|128,c[u++]=255&d;for(var g=0;g<6;++g)c[u+g]=h[g];return t||a(c)}},function(e,t,r){"use strict";var n=r(188),i=r(189);e.exports=function(e,t,r){var o=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||n)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[o+s]=a[s];return t||i(a)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(190);t.Transaction=n.default;var i=r(518);t.FakeTransaction=i.default},function(e,t,r){"use strict";var n=r(458),i=r(459),o=r(192);function a(e,t){return void 0===e?t:(n.isBoolean(e,o.COMPRESSED_TYPE_INVALID),e)}e.exports=function(e){return{privateKeyVerify:function(t){return n.isBuffer(t,o.EC_PRIVATE_KEY_TYPE_INVALID),32===t.length&&e.privateKeyVerify(t)},privateKeyExport:function(t,r){n.isBuffer(t,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),r=a(r,!0);var s=e.privateKeyExport(t,r);return i.privateKeyExport(t,s,r)},privateKeyImport:function(t){if(n.isBuffer(t,o.EC_PRIVATE_KEY_TYPE_INVALID),(t=i.privateKeyImport(t))&&32===t.length&&e.privateKeyVerify(t))return t;throw new Error(o.EC_PRIVATE_KEY_IMPORT_DER_FAIL)},privateKeyNegate:function(t){return n.isBuffer(t,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),e.privateKeyNegate(t)},privateKeyModInverse:function(t){return n.isBuffer(t,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),e.privateKeyModInverse(t)},privateKeyTweakAdd:function(t,r){return n.isBuffer(t,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),n.isBuffer(r,o.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,o.TWEAK_LENGTH_INVALID),e.privateKeyTweakAdd(t,r)},privateKeyTweakMul:function(t,r){return n.isBuffer(t,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),n.isBuffer(r,o.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,o.TWEAK_LENGTH_INVALID),e.privateKeyTweakMul(t,r)},publicKeyCreate:function(t,r){return n.isBuffer(t,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(t,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),r=a(r,!0),e.publicKeyCreate(t,r)},publicKeyConvert:function(t,r){return n.isBuffer(t,o.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,o.EC_PUBLIC_KEY_LENGTH_INVALID),r=a(r,!0),e.publicKeyConvert(t,r)},publicKeyVerify:function(t){return n.isBuffer(t,o.EC_PUBLIC_KEY_TYPE_INVALID),e.publicKeyVerify(t)},publicKeyTweakAdd:function(t,r,i){return n.isBuffer(t,o.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,o.EC_PUBLIC_KEY_LENGTH_INVALID),n.isBuffer(r,o.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,o.TWEAK_LENGTH_INVALID),i=a(i,!0),e.publicKeyTweakAdd(t,r,i)},publicKeyTweakMul:function(t,r,i){return n.isBuffer(t,o.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(t,33,65,o.EC_PUBLIC_KEY_LENGTH_INVALID),n.isBuffer(r,o.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,o.TWEAK_LENGTH_INVALID),i=a(i,!0),e.publicKeyTweakMul(t,r,i)},publicKeyCombine:function(t,r){n.isArray(t,o.EC_PUBLIC_KEYS_TYPE_INVALID),n.isLengthGTZero(t,o.EC_PUBLIC_KEYS_LENGTH_INVALID);for(var i=0;i=r)throw RangeError(n)}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n=r(13).Buffer,i=r(460),o=n.from([48,129,211,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,133,48,129,130,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,33,2,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,36,3,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),a=n.from([48,130,1,19,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,165,48,129,162,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,65,4,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,72,58,218,119,38,163,196,101,93,164,251,252,14,17,8,168,253,23,180,72,166,133,84,25,156,71,208,143,251,16,212,184,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,68,3,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);t.privateKeyExport=function(e,t,r){var i=n.from(r?o:a);return e.copy(i,r?8:9),t.copy(i,r?181:214),i},t.privateKeyImport=function(e){var t=e.length,r=0;if(!(t2||t1?e[r+n-2]<<8:0);if(!(t<(r+=n)+i||t32||t1&&0===t[o]&&!(128&t[o+1]);--r,++o);for(var a=n.concat([n.from([0]),e.s]),s=33,f=0;s>1&&0===a[f]&&!(128&a[f+1]);--s,++f);return i.encode(t.slice(o),a.slice(f))},t.signatureImport=function(e){var t=n.alloc(32,0),r=n.alloc(32,0);try{var o=i.decode(e);if(33===o.r.length&&0===o.r[0]&&(o.r=o.r.slice(1)),o.r.length>32)throw new Error("R length is too long");if(33===o.s.length&&0===o.s[0]&&(o.s=o.s.slice(1)),o.s.length>32)throw new Error("S length is too long")}catch(e){return}return o.r.copy(t,32-o.r.length),o.s.copy(r,32-o.s.length),{r:t,s:r}},t.signatureImportLax=function(e){var t=n.alloc(32,0),r=n.alloc(32,0),i=e.length,o=0;if(48===e[o++]){var a=e[o++];if(!(128&a&&(o+=a-128)>i)&&2===e[o++]){var s=e[o++];if(128&s){if(o+(a=s-128)>i)return;for(;a>0&&0===e[o];o+=1,a-=1);for(s=0;a>0;o+=1,a-=1)s=(s<<8)+e[o]}if(!(s>i-o)){var f=o;if(o+=s,2===e[o++]){var u=e[o++];if(128&u){if(o+(a=u-128)>i)return;for(;a>0&&0===e[o];o+=1,a-=1);for(u=0;a>0;o+=1,a-=1)u=(u<<8)+e[o]}if(!(u>i-o)){var c=o;for(o+=u;s>0&&0===e[f];s-=1,f+=1);if(!(s>32)){var h=e.slice(f,f+s);for(h.copy(t,32-h.length);u>0&&0===e[c];u-=1,c+=1);if(!(u>32)){var d=e.slice(c,c+u);return d.copy(r,32-d.length),{r:t,s:r}}}}}}}}}},function(e,t,r){"use strict";var n=r(13).Buffer;e.exports={check:function(e){if(e.length<8)return!1;if(e.length>72)return!1;if(48!==e[0])return!1;if(e[1]!==e.length-2)return!1;if(2!==e[2])return!1;var t=e[3];if(0===t)return!1;if(5+t>=e.length)return!1;if(2!==e[4+t])return!1;var r=e[5+t];return 0!==r&&(6+t+r===e.length&&(!(128&e[4])&&(!(t>1&&0===e[4]&&!(128&e[5]))&&(!(128&e[t+6])&&!(r>1&&0===e[t+6]&&!(128&e[t+7]))))))},decode:function(e){if(e.length<8)throw new Error("DER sequence length is too short");if(e.length>72)throw new Error("DER sequence length is too long");if(48!==e[0])throw new Error("Expected DER sequence");if(e[1]!==e.length-2)throw new Error("DER sequence length is invalid");if(2!==e[2])throw new Error("Expected DER integer");var t=e[3];if(0===t)throw new Error("R length is zero");if(5+t>=e.length)throw new Error("R length is too long");if(2!==e[4+t])throw new Error("Expected DER integer (2)");var r=e[5+t];if(0===r)throw new Error("S length is zero");if(6+t+r!==e.length)throw new Error("S length is invalid");if(128&e[4])throw new Error("R value is negative");if(t>1&&0===e[4]&&!(128&e[5]))throw new Error("R value excessively padded");if(128&e[t+6])throw new Error("S value is negative");if(r>1&&0===e[t+6]&&!(128&e[t+7]))throw new Error("S value excessively padded");return{r:e.slice(4,4+t),s:e.slice(6+t)}},encode:function(e,t){var r=e.length,i=t.length;if(0===r)throw new Error("R length is zero");if(0===i)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(i>33)throw new Error("S length is too long");if(128&e[0])throw new Error("R value is negative");if(128&t[0])throw new Error("S value is negative");if(r>1&&0===e[0]&&!(128&e[1]))throw new Error("R value excessively padded");if(i>1&&0===t[0]&&!(128&t[1]))throw new Error("S value excessively padded");var o=n.allocUnsafe(6+r+i);return o[0]=48,o[1]=o.length-2,o[2]=2,o[3]=e.length,e.copy(o,4),o[4+r]=2,o[5+r]=t.length,t.copy(o,6+r),o}}},function(e,t,r){"use strict";var n=r(13).Buffer,i=r(193),o=r(14),a=r(471).ec,s=r(192),f=new a("secp256k1"),u=f.curve;function c(e){var t=e[0];switch(t){case 2:case 3:return 33!==e.length?null:function(e,t){var r=new o(t);if(r.cmp(u.p)>=0)return null;var n=(r=r.toRed(u.red)).redSqr().redIMul(r).redIAdd(u.b).redSqrt();return 3===e!==n.isOdd()&&(n=n.redNeg()),f.keyPair({pub:{x:r,y:n}})}(t,e.slice(1,33));case 4:case 6:case 7:return 65!==e.length?null:function(e,t,r){var n=new o(t),i=new o(r);if(n.cmp(u.p)>=0||i.cmp(u.p)>=0)return null;if(n=n.toRed(u.red),i=i.toRed(u.red),(6===e||7===e)&&i.isOdd()!==(7===e))return null;var a=n.redSqr().redIMul(n);return i.redSqr().redISub(a.redIAdd(u.b)).isZero()?f.keyPair({pub:{x:n,y:i}}):null}(t,e.slice(1,33),e.slice(33,65));default:return null}}t.privateKeyVerify=function(e){var t=new o(e);return t.cmp(u.n)<0&&!t.isZero()},t.privateKeyExport=function(e,t){var r=new o(e);if(r.cmp(u.n)>=0||r.isZero())throw new Error(s.EC_PRIVATE_KEY_EXPORT_DER_FAIL);return n.from(f.keyFromPrivate(e).getPublic(t,!0))},t.privateKeyNegate=function(e){var t=new o(e);return t.isZero()?n.alloc(32):u.n.sub(t).umod(u.n).toArrayLike(n,"be",32)},t.privateKeyModInverse=function(e){var t=new o(e);if(t.cmp(u.n)>=0||t.isZero())throw new Error(s.EC_PRIVATE_KEY_RANGE_INVALID);return t.invm(u.n).toArrayLike(n,"be",32)},t.privateKeyTweakAdd=function(e,t){var r=new o(t);if(r.cmp(u.n)>=0)throw new Error(s.EC_PRIVATE_KEY_TWEAK_ADD_FAIL);if(r.iadd(new o(e)),r.cmp(u.n)>=0&&r.isub(u.n),r.isZero())throw new Error(s.EC_PRIVATE_KEY_TWEAK_ADD_FAIL);return r.toArrayLike(n,"be",32)},t.privateKeyTweakMul=function(e,t){var r=new o(t);if(r.cmp(u.n)>=0||r.isZero())throw new Error(s.EC_PRIVATE_KEY_TWEAK_MUL_FAIL);return r.imul(new o(e)),r.cmp(u.n)&&(r=r.umod(u.n)),r.toArrayLike(n,"be",32)},t.publicKeyCreate=function(e,t){var r=new o(e);if(r.cmp(u.n)>=0||r.isZero())throw new Error(s.EC_PUBLIC_KEY_CREATE_FAIL);return n.from(f.keyFromPrivate(e).getPublic(t,!0))},t.publicKeyConvert=function(e,t){var r=c(e);if(null===r)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);return n.from(r.getPublic(t,!0))},t.publicKeyVerify=function(e){return null!==c(e)},t.publicKeyTweakAdd=function(e,t,r){var i=c(e);if(null===i)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);if((t=new o(t)).cmp(u.n)>=0)throw new Error(s.EC_PUBLIC_KEY_TWEAK_ADD_FAIL);var a=u.g.mul(t).add(i.pub);if(a.isInfinity())throw new Error(s.EC_PUBLIC_KEY_TWEAK_ADD_FAIL);return n.from(a.encode(!0,r))},t.publicKeyTweakMul=function(e,t,r){var i=c(e);if(null===i)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);if((t=new o(t)).cmp(u.n)>=0||t.isZero())throw new Error(s.EC_PUBLIC_KEY_TWEAK_MUL_FAIL);return n.from(i.pub.mul(t).encode(!0,r))},t.publicKeyCombine=function(e,t){for(var r=new Array(e.length),i=0;i=0||r.cmp(u.n)>=0)throw new Error(s.ECDSA_SIGNATURE_PARSE_FAIL);var i=n.from(e);return 1===r.cmp(f.nh)&&u.n.sub(r).toArrayLike(n,"be",32).copy(i,32),i},t.signatureExport=function(e){var t=e.slice(0,32),r=e.slice(32,64);if(new o(t).cmp(u.n)>=0||new o(r).cmp(u.n)>=0)throw new Error(s.ECDSA_SIGNATURE_PARSE_FAIL);return{r:t,s:r}},t.signatureImport=function(e){var t=new o(e.r);t.cmp(u.n)>=0&&(t=new o(0));var r=new o(e.s);return r.cmp(u.n)>=0&&(r=new o(0)),n.concat([t.toArrayLike(n,"be",32),r.toArrayLike(n,"be",32)])},t.sign=function(e,t,r,i){if("function"==typeof r){var a=r;r=function(r){var f=a(e,t,null,i,r);if(!n.isBuffer(f)||32!==f.length)throw new Error(s.ECDSA_SIGN_FAIL);return new o(f)}}var c=new o(t);if(c.cmp(u.n)>=0||c.isZero())throw new Error(s.ECDSA_SIGN_FAIL);var h=f.sign(e,t,{canonical:!0,k:r,pers:i});return{signature:n.concat([h.r.toArrayLike(n,"be",32),h.s.toArrayLike(n,"be",32)]),recovery:h.recoveryParam}},t.verify=function(e,t,r){var n={r:t.slice(0,32),s:t.slice(32,64)},i=new o(n.r),a=new o(n.s);if(i.cmp(u.n)>=0||a.cmp(u.n)>=0)throw new Error(s.ECDSA_SIGNATURE_PARSE_FAIL);if(1===a.cmp(f.nh)||i.isZero()||a.isZero())return!1;var h=c(r);if(null===h)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);return f.verify(e,n,{x:h.pub.x,y:h.pub.y})},t.recover=function(e,t,r,i){var a={r:t.slice(0,32),s:t.slice(32,64)},c=new o(a.r),h=new o(a.s);if(c.cmp(u.n)>=0||h.cmp(u.n)>=0)throw new Error(s.ECDSA_SIGNATURE_PARSE_FAIL);try{if(c.isZero()||h.isZero())throw new Error;var d=f.recoverPubKey(e,a,r);return n.from(d.encode(!0,i))}catch(e){throw new Error(s.ECDSA_RECOVER_FAIL)}},t.ecdh=function(e,r){var n=t.ecdhUnsafe(e,r,!0);return i("sha256").update(n).digest()},t.ecdhUnsafe=function(e,t,r){var i=c(e);if(null===i)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);var a=new o(t);if(a.cmp(u.n)>=0||a.isZero())throw new Error(s.ECDH_FAIL);return n.from(i.pub.mul(a).encode(!0,r))}},function(e,t,r){"use strict";var n=r(12),i=r(194),o=r(13).Buffer,a=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function f(e,t){return e<>>32-t}function u(e,t,r,n,i,o,a){return f(e+(t&r|~t&n)+i+o|0,a)+t|0}function c(e,t,r,n,i,o,a){return f(e+(t&n|r&~n)+i+o|0,a)+t|0}function h(e,t,r,n,i,o,a){return f(e+(t^r^n)+i+o|0,a)+t|0}function d(e,t,r,n,i,o,a){return f(e+(r^(t|~n))+i+o|0,a)+t|0}n(s,i),s.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,n=this._b,i=this._c,o=this._d;r=u(r,n,i,o,e[0],3614090360,7),o=u(o,r,n,i,e[1],3905402710,12),i=u(i,o,r,n,e[2],606105819,17),n=u(n,i,o,r,e[3],3250441966,22),r=u(r,n,i,o,e[4],4118548399,7),o=u(o,r,n,i,e[5],1200080426,12),i=u(i,o,r,n,e[6],2821735955,17),n=u(n,i,o,r,e[7],4249261313,22),r=u(r,n,i,o,e[8],1770035416,7),o=u(o,r,n,i,e[9],2336552879,12),i=u(i,o,r,n,e[10],4294925233,17),n=u(n,i,o,r,e[11],2304563134,22),r=u(r,n,i,o,e[12],1804603682,7),o=u(o,r,n,i,e[13],4254626195,12),i=u(i,o,r,n,e[14],2792965006,17),r=c(r,n=u(n,i,o,r,e[15],1236535329,22),i,o,e[1],4129170786,5),o=c(o,r,n,i,e[6],3225465664,9),i=c(i,o,r,n,e[11],643717713,14),n=c(n,i,o,r,e[0],3921069994,20),r=c(r,n,i,o,e[5],3593408605,5),o=c(o,r,n,i,e[10],38016083,9),i=c(i,o,r,n,e[15],3634488961,14),n=c(n,i,o,r,e[4],3889429448,20),r=c(r,n,i,o,e[9],568446438,5),o=c(o,r,n,i,e[14],3275163606,9),i=c(i,o,r,n,e[3],4107603335,14),n=c(n,i,o,r,e[8],1163531501,20),r=c(r,n,i,o,e[13],2850285829,5),o=c(o,r,n,i,e[2],4243563512,9),i=c(i,o,r,n,e[7],1735328473,14),r=h(r,n=c(n,i,o,r,e[12],2368359562,20),i,o,e[5],4294588738,4),o=h(o,r,n,i,e[8],2272392833,11),i=h(i,o,r,n,e[11],1839030562,16),n=h(n,i,o,r,e[14],4259657740,23),r=h(r,n,i,o,e[1],2763975236,4),o=h(o,r,n,i,e[4],1272893353,11),i=h(i,o,r,n,e[7],4139469664,16),n=h(n,i,o,r,e[10],3200236656,23),r=h(r,n,i,o,e[13],681279174,4),o=h(o,r,n,i,e[0],3936430074,11),i=h(i,o,r,n,e[3],3572445317,16),n=h(n,i,o,r,e[6],76029189,23),r=h(r,n,i,o,e[9],3654602809,4),o=h(o,r,n,i,e[12],3873151461,11),i=h(i,o,r,n,e[15],530742520,16),r=d(r,n=h(n,i,o,r,e[2],3299628645,23),i,o,e[0],4096336452,6),o=d(o,r,n,i,e[7],1126891415,10),i=d(i,o,r,n,e[14],2878612391,15),n=d(n,i,o,r,e[5],4237533241,21),r=d(r,n,i,o,e[12],1700485571,6),o=d(o,r,n,i,e[3],2399980690,10),i=d(i,o,r,n,e[10],4293915773,15),n=d(n,i,o,r,e[1],2240044497,21),r=d(r,n,i,o,e[8],1873313359,6),o=d(o,r,n,i,e[15],4264355552,10),i=d(i,o,r,n,e[6],2734768916,15),n=d(n,i,o,r,e[13],1309151649,21),r=d(r,n,i,o,e[4],4149444226,6),o=d(o,r,n,i,e[11],3174756917,10),i=d(i,o,r,n,e[2],718787259,15),n=d(n,i,o,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=o.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=s},function(e,t,r){"use strict";var n=r(2).Buffer,i=r(12),o=r(194),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],f=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],u=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],c=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function l(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<>>32-t}function b(e,t,r,n,i,o,a,s){return p(e+(t^r^n)+o+a|0,s)+i|0}function m(e,t,r,n,i,o,a,s){return p(e+(t&r|~t&n)+o+a|0,s)+i|0}function v(e,t,r,n,i,o,a,s){return p(e+((t|~r)^n)+o+a|0,s)+i|0}function y(e,t,r,n,i,o,a,s){return p(e+(t&n|r&~n)+o+a|0,s)+i|0}function g(e,t,r,n,i,o,a,s){return p(e+(t^(r|~n))+o+a|0,s)+i|0}i(l,o),l.prototype._update=function(){for(var e=a,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,l=0|this._e,w=0|this._a,_=0|this._b,k=0|this._c,A=0|this._d,S=0|this._e,E=0;E<80;E+=1){var M,x;E<16?(M=b(r,n,i,o,l,e[s[E]],h[0],u[E]),x=g(w,_,k,A,S,e[f[E]],d[0],c[E])):E<32?(M=m(r,n,i,o,l,e[s[E]],h[1],u[E]),x=y(w,_,k,A,S,e[f[E]],d[1],c[E])):E<48?(M=v(r,n,i,o,l,e[s[E]],h[2],u[E]),x=v(w,_,k,A,S,e[f[E]],d[2],c[E])):E<64?(M=y(r,n,i,o,l,e[s[E]],h[3],u[E]),x=m(w,_,k,A,S,e[f[E]],d[3],c[E])):(M=g(r,n,i,o,l,e[s[E]],h[4],u[E]),x=b(w,_,k,A,S,e[f[E]],d[4],c[E])),r=l,l=o,o=p(i,10),i=n,n=M,w=S,S=A,A=p(k,10),k=_,_=x}var I=this._b+i+A|0;this._b=this._c+o+S|0,this._c=this._d+l+w|0,this._d=this._e+r+_|0,this._e=this._a+n+k|0,this._a=I},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=n.alloc?n.alloc(20):new n(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=l},function(e,t,r){"use strict";var n=e.exports=function(e){e=e.toLowerCase();var t=n[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};n.sha=r(465),n.sha1=r(466),n.sha224=r(467),n.sha256=r(195),n.sha384=r(468),n.sha512=r(196)},function(e,t,r){"use strict";var n=r(12),i=r(40),o=r(13).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function f(){this.init(),this._w=s,i.call(this,64,56)}function u(e){return e<<30|e>>>2}function c(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(f,i),f.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},f.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,f=0|this._e,h=0;h<16;++h)r[h]=e.readInt32BE(4*h);for(;h<80;++h)r[h]=r[h-3]^r[h-8]^r[h-14]^r[h-16];for(var d=0;d<80;++d){var l=~~(d/20),p=0|((t=n)<<5|t>>>27)+c(l,i,o,s)+f+r[d]+a[l];f=s,s=o,o=u(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=f+this._e|0},f.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=f},function(e,t,r){"use strict";var n=r(12),i=r(40),o=r(13).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function f(){this.init(),this._w=s,i.call(this,64,56)}function u(e){return e<<5|e>>>27}function c(e){return e<<30|e>>>2}function h(e,t,r,n){return 0===e?t&r|~t&n:2===e?t&r|t&n|r&n:t^r^n}n(f,i),f.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},f.prototype._update=function(e){for(var t,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,f=0|this._e,d=0;d<16;++d)r[d]=e.readInt32BE(4*d);for(;d<80;++d)r[d]=(t=r[d-3]^r[d-8]^r[d-14]^r[d-16])<<1|t>>>31;for(var l=0;l<80;++l){var p=~~(l/20),b=u(n)+h(p,i,o,s)+f+r[l]+a[p]|0;f=s,s=o,o=c(i),i=n,n=b}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=f+this._e|0},f.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=f},function(e,t,r){"use strict";var n=r(12),i=r(195),o=r(40),a=r(13).Buffer,s=new Array(64);function f(){this.init(),this._w=s,o.call(this,64,56)}n(f,i),f.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},f.prototype._hash=function(){var e=a.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=f},function(e,t,r){"use strict";var n=r(12),i=r(196),o=r(40),a=r(13).Buffer,s=new Array(160);function f(){this.init(),this._w=s,o.call(this,128,112)}n(f,i),f.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},f.prototype._hash=function(){var e=a.allocUnsafe(48);function t(t,r,n){e.writeInt32BE(t,n),e.writeInt32BE(r,n+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=f},function(e,t,r){"use strict";var n=r(13).Buffer,i=r(36).Transform,o=r(60).StringDecoder;function a(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(12)(a,i),a.prototype.update=function(e,t,r){"string"==typeof e&&(e=n.from(e,t));var i=this._update(e);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},a.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},a.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},a.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){n=e}finally{r(n)}},a.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},a.prototype._finalOrDigest=function(e){var t=this.__final()||n.alloc(0);return e&&(t=this._toString(t,e,!0)),t},a.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new o(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n},e.exports=a},function(e,t){},function(e,t,r){"use strict";var n=t;n.version=r(472).version,n.utils=r(23),n.rand=r(198),n.curve=r(199),n.curves=r(100),n.ec=r(484),n.eddsa=r(488)},function(e){e.exports=JSON.parse('{"_args":[["elliptic@6.5.2","/home/greg/code/github.com/ethereum/web3.js/packages/web3-eth-accounts"]],"_from":"elliptic@6.5.2","_id":"elliptic@6.5.2","_inBundle":false,"_integrity":"sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"elliptic@6.5.2","name":"elliptic","escapedName":"elliptic","rawSpec":"6.5.2","saveSpec":null,"fetchSpec":"6.5.2"},"_requiredBy":["/browserify-sign","/create-ecdh","/eth-lib","/secp256k1"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz","_spec":"6.5.2","_where":"/home/greg/code/github.com/ethereum/web3.js/packages/web3-eth-accounts","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},"description":"EC cryptography","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"files":["lib"],"homepage":"https://github.com/indutny/elliptic","keywords":["EC","Elliptic","curve","Cryptography"],"license":"MIT","main":"lib/elliptic.js","name":"elliptic","repository":{"type":"git","url":"git+ssh://git@github.com/indutny/elliptic.git"},"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","test":"npm run lint && npm run unit","unit":"istanbul test _mocha --reporter=spec test/index.js","version":"grunt dist && git add dist/"},"version":"6.5.2"}')},function(e,t){},function(e,t,r){"use strict";var n=r(23),i=r(14),o=r(12),a=r(75),s=n.assert;function f(e){a.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function u(e,t,r,n){a.BasePoint.call(this,e,"affine"),null===t&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function c(e,t,r,n){a.BasePoint.call(this,e,"jacobian"),null===t&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(f,a),e.exports=f,f.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,r;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);t=(t=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(e.lambda)r=new i(e.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(t))?r=o[0]:(r=o[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:r,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(r)}}},f.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),r=new i(2).toRed(t).redInvm(),n=r.redNeg(),o=new i(3).toRed(t).redNeg().redSqrt().redMul(r);return[n.redAdd(o).fromRed(),n.redSub(o).fromRed()]},f.prototype._getEndoBasis=function(e){for(var t,r,n,o,a,s,f,u,c,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,l=this.n.clone(),p=new i(1),b=new i(0),m=new i(0),v=new i(1),y=0;0!==d.cmpn(0);){var g=l.div(d);u=l.sub(g.mul(d)),c=m.sub(g.mul(p));var w=v.sub(g.mul(b));if(!n&&u.cmp(h)<0)t=f.neg(),r=p,n=u.neg(),o=c;else if(n&&2==++y)break;f=u,l=d,d=u,m=p,p=c,v=b,b=w}a=u.neg(),s=c;var _=n.sqr().add(o.sqr());return a.sqr().add(s.sqr()).cmp(_)>=0&&(a=t,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a:a,b:s}]},f.prototype._endoSplit=function(e){var t=this.endo.basis,r=t[0],n=t[1],i=n.b.mul(e).divRound(this.n),o=r.b.neg().mul(e).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),f=i.mul(r.b),u=o.mul(n.b);return{k1:e.sub(a).sub(s),k2:f.add(u).neg()}},f.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(t&&!o||!t&&o)&&(n=n.redNeg()),this.point(e,n)},f.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,r=e.y,n=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},f.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},u.prototype.isInfinity=function(){return this.inf},u.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var r=t.redSqr().redISub(this.x).redISub(e.x),n=t.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},u.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,r=this.x.redSqr(),n=e.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(t).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},u.prototype.getX=function(){return this.x.fromRed()},u.prototype.getY=function(){return this.y.fromRed()},u.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},u.prototype.mulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},u.prototype.jmulAdd=function(e,t,r){var n=[this,t],i=[e,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},u.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},u.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var r=this.precomputed,n=function(e){return e.neg()};t.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return t},u.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(c,a.BasePoint),f.prototype.jpoint=function(e,t,r){return new c(this,e,t,r)},c.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),r=this.x.redMul(t),n=this.y.redMul(t).redMul(e);return this.curve.point(r,n)},c.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},c.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(t),i=e.x.redMul(r),o=this.y.redMul(t.redMul(e.z)),a=e.y.redMul(r.redMul(this.z)),s=n.redSub(i),f=o.redSub(a);if(0===s.cmpn(0))return 0!==f.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=s.redSqr(),c=u.redMul(s),h=n.redMul(u),d=f.redSqr().redIAdd(c).redISub(h).redISub(h),l=f.redMul(h.redISub(d)).redISub(o.redMul(c)),p=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(d,l,p)},c.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),r=this.x,n=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=a.redSqr(),u=f.redMul(a),c=r.redMul(f),h=s.redSqr().redIAdd(u).redISub(c).redISub(c),d=s.redMul(c.redISub(h)).redISub(i.redMul(u)),l=this.z.redMul(a);return this.curve.jpoint(h,d,l)},c.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,r){"use strict";var n=r(14),i=r(12),o=r(75),a=r(23);function s(e){o.call(this,"mont",e),this.a=new n(e.a,16).toRed(this.red),this.b=new n(e.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function f(e,t,r){o.BasePoint.call(this,e,"projective"),null===t&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(t,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,o),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,r=t.redSqr(),n=r.redMul(t).redAdd(r.redMul(this.a)).redAdd(t);return 0===n.redSqrt().redSqr().cmp(n)},i(f,o.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new f(this,e,t)},s.prototype.pointFromJSON=function(e){return f.fromJSON(this,e)},f.prototype.precompute=function(){},f.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},f.fromJSON=function(e,t){return new f(e,t[0],t[1]||e.one)},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},f.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),r=e.redSub(t),n=e.redMul(t),i=r.redMul(t.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},f.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.diffAdd=function(e,t){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(r),a=i.redMul(n),s=t.z.redMul(o.redAdd(a).redSqr()),f=t.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,f)},f.prototype.mul=function(e){for(var t=e.clone(),r=this,n=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},f.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},f.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},f.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,r){"use strict";var n=r(23),i=r(14),o=r(12),a=r(75),s=n.assert;function f(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,a.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function u(e,t,r,n,o){a.BasePoint.call(this,e,"projective"),null===t&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(f,a),e.exports=f,f.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},f.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},f.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},f.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var f=s.fromRed().isOdd();return(t&&!f||!t&&f)&&(s=s.redNeg()),this.point(e,s)},f.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var r=e.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},f.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),r=e.y.redSqr(),n=t.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(r)));return 0===n.cmp(i)},o(u,a.BasePoint),f.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},f.prototype.point=function(e,t,r,n){return new u(this,e,t,r,n)},u.fromJSON=function(e,t){return new u(e,t[0],t[1],t[2])},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},u.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=n.redAdd(t),a=o.redSub(r),s=n.redSub(t),f=i.redMul(a),u=o.redMul(s),c=i.redMul(s),h=a.redMul(o);return this.curve.point(f,u,h,c)},u.prototype._projDbl=function(){var e,t,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=(u=this.curve._mulA(i)).redAdd(o);if(this.zOne)e=n.redSub(i).redSub(o).redMul(a.redSub(this.curve.two)),t=a.redMul(u.redSub(o)),r=a.redSqr().redSub(a).redSub(a);else{var s=this.z.redSqr(),f=a.redSub(s).redISub(s);e=n.redSub(i).redISub(o).redMul(f),t=a.redMul(u.redSub(o)),r=a.redMul(f)}}else{var u=i.redAdd(o);s=this.curve._mulC(this.z).redSqr(),f=u.redSub(s).redSub(s);e=this.curve._mulC(n.redISub(u)).redMul(f),t=this.curve._mulC(u).redMul(i.redISub(o)),r=u.redMul(f)}return this.curve.point(e,t,r)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},u.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),r=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),n=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),o=r.redSub(t),a=i.redSub(n),s=i.redAdd(n),f=r.redAdd(t),u=o.redMul(a),c=s.redMul(f),h=o.redMul(f),d=a.redMul(s);return this.curve.point(u,c,d,h)},u.prototype._projAdd=function(e){var t,r,n=this.z.redMul(e.z),i=n.redSqr(),o=this.x.redMul(e.x),a=this.y.redMul(e.y),s=this.curve.d.redMul(o).redMul(a),f=i.redSub(s),u=i.redAdd(s),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(a),h=n.redMul(f).redMul(c);return this.curve.twisted?(t=n.redMul(u).redMul(a.redSub(this.curve._mulA(o))),r=f.redMul(u)):(t=n.redMul(u).redMul(a.redSub(o)),r=this.curve._mulC(f).redMul(u)),this.curve.point(h,t,r)},u.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},u.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},u.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},u.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},u.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},u.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()},u.prototype.getY=function(){return this.normalize(),this.y.fromRed()},u.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},u.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var r=e.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(n),0===this.x.cmp(t))return!0}},u.prototype.toP=u.prototype.normalize,u.prototype.mixedAdd=u.prototype.add},function(e,t,r){"use strict";t.sha1=r(478),t.sha224=r(479),t.sha256=r(201),t.sha384=r(480),t.sha512=r(202)},function(e,t,r){"use strict";var n=r(28),i=r(56),o=r(200),a=n.rotl32,s=n.sum32,f=n.sum32_5,u=o.ft_1,c=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(d,c),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var r=this.W,n=0;n<16;n++)r[n]=e[t+n];for(;nthis.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t0))return a.iaddn(1),this.keyFromPrivate(a)}},d.prototype._truncateToN=function(e,t){var r=8*e.byteLength()-this.n.bitLength();return r>0&&(e=e.ushrn(r)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},d.prototype.sign=function(e,t,r,a){"object"===(0,n.default)(r)&&(a=r,r=null),a||(a={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new i(e,16));for(var s=this.n.byteLength(),f=t.getPrivate().toArray("be",s),u=e.toArray("be",s),c=new o({hash:this.hash,entropy:f,nonce:u,pers:a.pers,persEnc:a.persEnc||"utf8"}),d=this.n.sub(new i(1)),l=0;;l++){var p=a.k?a.k(l):new i(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var b=this.g.mul(p);if(!b.isInfinity()){var m=b.getX(),v=m.umod(this.n);if(0!==v.cmpn(0)){var y=p.invm(this.n).mul(v.mul(t.getPrivate()).iadd(e));if(0!==(y=y.umod(this.n)).cmpn(0)){var g=(b.getY().isOdd()?1:0)|(0!==m.cmp(v)?2:0);return a.canonical&&y.cmp(this.nh)>0&&(y=this.n.sub(y),g^=1),new h({r:v,s:y,recoveryParam:g})}}}}}},d.prototype.verify=function(e,t,r,n){e=this._truncateToN(new i(e,16)),r=this.keyFromPublic(r,n);var o=(t=new h(t,"hex")).r,a=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,f=a.invm(this.n),u=f.mul(e).umod(this.n),c=f.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(u,r.getPublic(),c)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(u,r.getPublic(),c)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},d.prototype.recoverPubKey=function(e,t,r,n){u((3&r)===r,"The recovery param is more than two bits"),t=new h(t,n);var o=this.n,a=new i(e),s=t.r,f=t.s,c=1&r,d=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");s=d?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var l=t.r.invm(o),p=o.sub(a).mul(l).umod(o),b=f.mul(l).umod(o);return this.g.mulAdd(p,s,b)},d.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new h(t,n)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,r){"use strict";var n=r(101),i=r(197),o=r(37);function a(e){if(!(this instanceof a))return new a(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),r=i.toArray(e.nonce,e.nonceEnc||"hex"),n=i.toArray(e.pers,e.persEnc||"hex");o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}e.exports=a,a.prototype._init=function(e,t,r){var n=e.concat(t).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(r||[])),this._reseed=1},a.prototype.generate=function(e,t,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(n=r,r=t,t=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length"}},function(e,t,r){"use strict";var n=r(14),i=r(23),o=i.assert;function a(e,t){if(e instanceof a)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new n(e.r,16),this.s=new n(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function f(e,t){var r=e[t.place++];if(!(128&r))return r;for(var n=15&r,i=0,o=0,a=t.place;o>>3);for(e.push(128|r);--r;)e.push(t>>>(r<<3)&255);e.push(t)}}e.exports=a,a.prototype._importDER=function(e,t){e=i.toArray(e,t);var r=new s;if(48!==e[r.place++])return!1;if(f(e,r)+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var o=f(e,r),a=e.slice(r.place,o+r.place);if(r.place+=o,2!==e[r.place++])return!1;var u=f(e,r);if(e.length!==u+r.place)return!1;var c=e.slice(r.place,u+r.place);return 0===a[0]&&128&a[1]&&(a=a.slice(1)),0===c[0]&&128&c[1]&&(c=c.slice(1)),this.r=new n(a),this.s=new n(c),this.recoveryParam=null,!0},a.prototype.toDER=function(e){var t=this.r.toArray(),r=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&r[0]&&(r=[0].concat(r)),t=u(t),r=u(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];c(n,t.length),(n=n.concat(t)).push(2),c(n,r.length);var o=n.concat(r),a=[48];return c(a,o.length),a=a.concat(o),i.encode(a,e)}},function(e,t,r){"use strict";var n=r(101),i=r(100),o=r(23),a=o.assert,s=o.parseBytes,f=r(489),u=r(490);function c(e){if(a("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof c))return new c(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=n.sha512}e.exports=c,c.prototype.sign=function(e,t){e=s(e);var r=this.keyFromSecret(t),n=this.hashInt(r.messagePrefix(),e),i=this.g.mul(n),o=this.encodePoint(i),a=this.hashInt(o,r.pubBytes(),e).mul(r.priv()),f=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:f,Rencoded:o})},c.prototype.verify=function(e,t,r){e=s(e),t=this.makeSignature(t);var n=this.keyFromPublic(r),i=this.hashInt(t.Rencoded(),n.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(n.pub().mul(i)).eq(o)},c.prototype.hashInt=function(){for(var e=this.hash(),t=0;t=8?o+=e[a].toUpperCase():o+=e[a];return o},t.isValidChecksumAddress=function(e,r){return t.isValidAddress(e)&&t.toChecksumAddress(e,r)===e},t.generateAddress=function(t,r){t=s.toBuffer(t);var n=new a(r);return n.isZero()?f.rlphash([t,null]).slice(-20):f.rlphash([t,e.from(n.toArray())]).slice(-20)},t.generateAddress2=function(t,r,i){var o=s.toBuffer(t),a=s.toBuffer(r),u=s.toBuffer(i);return n(20===o.length),n(32===a.length),f.keccak256(e.concat([e.from("ff","hex"),o,a,f.keccak256(u)])).slice(-20)},t.isPrecompiled=function(e){var t=s.unpad(e);return 1===t.length&&t[0]>=1&&t[0]<=8},t.isValidPrivate=function(e){return o.privateKeyVerify(e)},t.isValidPublic=function(t,r){return void 0===r&&(r=!1),64===t.length?o.publicKeyVerify(e.concat([e.from([4]),t])):!!r&&o.publicKeyVerify(t)},t.pubToAddress=function(e,t){return void 0===t&&(t=!1),e=s.toBuffer(e),t&&64!==e.length&&(e=o.publicKeyConvert(e,!1).slice(1)),n(64===e.length),f.keccak(e).slice(-20)},t.publicToAddress=t.pubToAddress,t.privateToAddress=function(e){return t.publicToAddress(t.privateToPublic(e))},t.privateToPublic=function(e){return e=s.toBuffer(e),o.publicKeyCreate(e,!1).slice(1)},t.importPublic=function(e){return 64!==(e=s.toBuffer(e)).length&&(e=o.publicKeyConvert(e,!1).slice(1)),e}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";e.exports=r(495)(r(498))},function(e,t,r){"use strict";var n=r(496),i=r(497);e.exports=function(e){var t=n(e),r=i(e);return function(e,n){switch("string"==typeof e?e.toLowerCase():e){case"keccak224":return new t(1152,448,null,224,n);case"keccak256":return new t(1088,512,null,256,n);case"keccak384":return new t(832,768,null,384,n);case"keccak512":return new t(576,1024,null,512,n);case"sha3-224":return new t(1152,448,6,224,n);case"sha3-256":return new t(1088,512,6,256,n);case"sha3-384":return new t(832,768,6,384,n);case"sha3-512":return new t(576,1024,6,512,n);case"shake128":return new r(1344,256,31,n);case"shake256":return new r(1088,512,31,n);default:throw new Error("Invald algorithm: "+e)}}}},function(e,t,r){"use strict";var n=r(13).Buffer,i=r(36).Transform,o=r(12);e.exports=function(e){function t(t,r,n,o,a){i.call(this,a),this._rate=t,this._capacity=r,this._delimitedSuffix=n,this._hashBitLength=o,this._options=a,this._state=new e,this._state.initialize(t,r),this._finalized=!1}return o(t,i),t.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},t.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},t.prototype.update=function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Digest already called");return n.isBuffer(e)||(e=n.from(e,t)),this._state.absorb(e),this},t.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0,this._delimitedSuffix&&this._state.absorbLastFewBits(this._delimitedSuffix);var t=this._state.squeeze(this._hashBitLength/8);return void 0!==e&&(t=t.toString(e)),this._resetState(),t},t.prototype._resetState=function(){return this._state.initialize(this._rate,this._capacity),this},t.prototype._clone=function(){var e=new t(this._rate,this._capacity,this._delimitedSuffix,this._hashBitLength,this._options);return this._state.copy(e._state),e._finalized=this._finalized,e},t}},function(e,t,r){"use strict";var n=r(13).Buffer,i=r(36).Transform,o=r(12);e.exports=function(e){function t(t,r,n,o){i.call(this,o),this._rate=t,this._capacity=r,this._delimitedSuffix=n,this._options=o,this._state=new e,this._state.initialize(t,r),this._finalized=!1}return o(t,i),t.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)},t.prototype._flush=function(){},t.prototype._read=function(e){this.push(this.squeeze(e))},t.prototype.update=function(e,t){if(!n.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Squeeze already called");return n.isBuffer(e)||(e=n.from(e,t)),this._state.absorb(e),this},t.prototype.squeeze=function(e,t){this._finalized||(this._finalized=!0,this._state.absorbLastFewBits(this._delimitedSuffix));var r=this._state.squeeze(e);return void 0!==t&&(r=r.toString(t)),r},t.prototype._resetState=function(){return this._state.initialize(this._rate,this._capacity),this},t.prototype._clone=function(){var e=new t(this._rate,this._capacity,this._delimitedSuffix,this._options);return this._state.copy(e._state),e._finalized=this._finalized,e},t}},function(e,t,r){"use strict";var n=r(13).Buffer,i=r(499);function o(){this.state=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.blockSize=null,this.count=0,this.squeezing=!1}o.prototype.initialize=function(e,t){for(var r=0;r<50;++r)this.state[r]=0;this.blockSize=e/8,this.count=0,this.squeezing=!1},o.prototype.absorb=function(e){for(var t=0;t>>this.count%4*8&255,this.count+=1,this.count===this.blockSize&&(i.p1600(this.state),this.count=0);return t},o.prototype.copy=function(e){for(var t=0;t<50;++t)e.state[t]=this.state[t];e.blockSize=this.blockSize,e.count=this.count,e.squeezing=this.squeezing},e.exports=o},function(e,t,r){"use strict";var n=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648];t.p1600=function(e){for(var t=0;t<24;++t){var r=e[0]^e[10]^e[20]^e[30]^e[40],i=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],a=e[3]^e[13]^e[23]^e[33]^e[43],s=e[4]^e[14]^e[24]^e[34]^e[44],f=e[5]^e[15]^e[25]^e[35]^e[45],u=e[6]^e[16]^e[26]^e[36]^e[46],c=e[7]^e[17]^e[27]^e[37]^e[47],h=e[8]^e[18]^e[28]^e[38]^e[48],d=e[9]^e[19]^e[29]^e[39]^e[49],l=h^(o<<1|a>>>31),p=d^(a<<1|o>>>31),b=e[0]^l,m=e[1]^p,v=e[10]^l,y=e[11]^p,g=e[20]^l,w=e[21]^p,_=e[30]^l,k=e[31]^p,A=e[40]^l,S=e[41]^p;l=r^(s<<1|f>>>31),p=i^(f<<1|s>>>31);var E=e[2]^l,M=e[3]^p,x=e[12]^l,I=e[13]^p,P=e[22]^l,N=e[23]^p,O=e[32]^l,R=e[33]^p,U=e[42]^l,C=e[43]^p;l=o^(u<<1|c>>>31),p=a^(c<<1|u>>>31);var B=e[4]^l,T=e[5]^p,j=e[14]^l,L=e[15]^p,F=e[24]^l,D=e[25]^p,z=e[34]^l,q=e[35]^p,H=e[44]^l,K=e[45]^p;l=s^(h<<1|d>>>31),p=f^(d<<1|h>>>31);var V=e[6]^l,G=e[7]^p,W=e[16]^l,$=e[17]^p,Y=e[26]^l,Z=e[27]^p,J=e[36]^l,X=e[37]^p,Q=e[46]^l,ee=e[47]^p;l=u^(r<<1|i>>>31),p=c^(i<<1|r>>>31);var te=e[8]^l,re=e[9]^p,ne=e[18]^l,ie=e[19]^p,oe=e[28]^l,ae=e[29]^p,se=e[38]^l,fe=e[39]^p,ue=e[48]^l,ce=e[49]^p,he=b,de=m,le=y<<4|v>>>28,pe=v<<4|y>>>28,be=g<<3|w>>>29,me=w<<3|g>>>29,ve=k<<9|_>>>23,ye=_<<9|k>>>23,ge=A<<18|S>>>14,we=S<<18|A>>>14,_e=E<<1|M>>>31,ke=M<<1|E>>>31,Ae=I<<12|x>>>20,Se=x<<12|I>>>20,Ee=P<<10|N>>>22,Me=N<<10|P>>>22,xe=R<<13|O>>>19,Ie=O<<13|R>>>19,Pe=U<<2|C>>>30,Ne=C<<2|U>>>30,Oe=T<<30|B>>>2,Re=B<<30|T>>>2,Ue=j<<6|L>>>26,Ce=L<<6|j>>>26,Be=D<<11|F>>>21,Te=F<<11|D>>>21,je=z<<15|q>>>17,Le=q<<15|z>>>17,Fe=K<<29|H>>>3,De=H<<29|K>>>3,ze=V<<28|G>>>4,qe=G<<28|V>>>4,He=$<<23|W>>>9,Ke=W<<23|$>>>9,Ve=Y<<25|Z>>>7,Ge=Z<<25|Y>>>7,We=J<<21|X>>>11,$e=X<<21|J>>>11,Ye=ee<<24|Q>>>8,Ze=Q<<24|ee>>>8,Je=te<<27|re>>>5,Xe=re<<27|te>>>5,Qe=ne<<20|ie>>>12,et=ie<<20|ne>>>12,tt=ae<<7|oe>>>25,rt=oe<<7|ae>>>25,nt=se<<8|fe>>>24,it=fe<<8|se>>>24,ot=ue<<14|ce>>>18,at=ce<<14|ue>>>18;e[0]=he^~Ae&Be,e[1]=de^~Se&Te,e[10]=ze^~Qe&be,e[11]=qe^~et&me,e[20]=_e^~Ue&Ve,e[21]=ke^~Ce&Ge,e[30]=Je^~le&Ee,e[31]=Xe^~pe&Me,e[40]=Oe^~He&tt,e[41]=Re^~Ke&rt,e[2]=Ae^~Be&We,e[3]=Se^~Te&$e,e[12]=Qe^~be&xe,e[13]=et^~me&Ie,e[22]=Ue^~Ve&nt,e[23]=Ce^~Ge&it,e[32]=le^~Ee&je,e[33]=pe^~Me&Le,e[42]=He^~tt&ve,e[43]=Ke^~rt&ye,e[4]=Be^~We&ot,e[5]=Te^~$e&at,e[14]=be^~xe&Fe,e[15]=me^~Ie&De,e[24]=Ve^~nt&ge,e[25]=Ge^~it&we,e[34]=Ee^~je&Ye,e[35]=Me^~Le&Ze,e[44]=tt^~ve&Pe,e[45]=rt^~ye&Ne,e[6]=We^~ot&he,e[7]=$e^~at&de,e[16]=xe^~Fe&ze,e[17]=Ie^~De&qe,e[26]=nt^~ge&_e,e[27]=it^~we&ke,e[36]=je^~Ye&Je,e[37]=Le^~Ze&Xe,e[46]=ve^~Pe&Oe,e[47]=ye^~Ne&Re,e[8]=ot^~he&Ae,e[9]=at^~de&Se,e[18]=Fe^~ze&Qe,e[19]=De^~qe&et,e[28]=ge^~_e&Ue,e[29]=we^~ke&Ce,e[38]=Ye^~Je&le,e[39]=Ze^~Xe&pe,e[48]=Pe^~Oe&He,e[49]=Ne^~Re&Ke,e[0]^=n[2*t],e[1]^=n[2*t+1]}}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var n=r(99),i=r(14),o=r(58),a=r(104);function s(e,t){return t?e-(2*t+35):e-27}function f(e){return 0===e||1===e}t.ecsign=function(e,t,r){var i=n.sign(e,t),o=i.recovery;return{r:i.signature.slice(0,32),s:i.signature.slice(32,64),v:r?o+(2*r+35):o+27}},t.ecrecover=function(t,r,i,a,u){var c=e.concat([o.setLength(i,32),o.setLength(a,32)],64),h=s(r,u);if(!f(h))throw new Error("Invalid signature v value");var d=n.recover(t,c,h);return n.publicKeyConvert(d,!1).slice(1)},t.toRpcSig=function(t,r,n,i){if(!f(s(t,i)))throw new Error("Invalid signature v value");return o.bufferToHex(e.concat([o.setLengthLeft(r,32),o.setLengthLeft(n,32),o.toBuffer(t)]))},t.fromRpcSig=function(e){var t=o.toBuffer(e);if(65!==t.length)throw new Error("Invalid signature length");var r=t[64];return r<27&&(r+=27),{v:r,r:t.slice(0,32),s:t.slice(32,64)}},t.isValidSignature=function(e,t,r,n,o){void 0===n&&(n=!0);var a=new i("7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0",16),u=new i("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",16);if(32!==t.length||32!==r.length)return!1;if(!f(s(e,o)))return!1;var c=new i(t),h=new i(r);return!(c.isZero()||c.gt(u)||h.isZero()||h.gt(u))&&(!n||1!==h.cmp(a))},t.hashPersonalMessage=function(t){var r=e.from("Ethereum Signed Message:\n"+t.length.toString(),"utf-8");return a.keccak(e.concat([r,t]))}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";(function(e){var n=r(0)(r(1));Object.defineProperty(t,"__esModule",{value:!0});var i=r(204),o=r(57),a=r(102),s=r(58);t.defineProperties=function(t,r,f){if(t.raw=[],t._fields=[],t.toJSON=function(e){if(void 0===e&&(e=!1),e){var r={};return t._fields.forEach((function(e){r[e]="0x"+t[e].toString("hex")})),r}return s.baToJSON(t.raw)},t.serialize=function(){return a.encode(t.raw)},r.forEach((function(r,n){function o(){return t.raw[n]}function a(o){"00"!==(o=s.toBuffer(o)).toString("hex")||r.allowZero||(o=e.allocUnsafe(0)),r.allowLess&&r.length?(o=s.stripZeros(o),i(r.length>=o.length,"The field "+r.name+" must not have more "+r.length+" bytes")):r.allowZero&&0===o.length||!r.length||i(r.length===o.length,"The field "+r.name+" must have byte length of "+r.length),t.raw[n]=o}t._fields.push(r.name),Object.defineProperty(t,r.name,{enumerable:!0,configurable:!0,get:o,set:a}),r.default&&(t[r.name]=r.default),r.alias&&Object.defineProperty(t,r.alias,{enumerable:!1,configurable:!0,set:a,get:o})})),f)if("string"==typeof f&&(f=e.from(o.stripHexPrefix(f),"hex")),e.isBuffer(f)&&(f=a.decode(f)),Array.isArray(f)){if(f.length>t._fields.length)throw new Error("wrong number of fields in data");f.forEach((function(e,r){t[t._fields[r]]=s.toBuffer(e)}))}else{if("object"!==(0,n.default)(f))throw new Error("invalid data");var u=Object.keys(f);r.forEach((function(e){-1!==u.indexOf(e.name)&&(t[e.name]=f[e.name]),-1!==u.indexOf(e.alias)&&(t[e.alias]=f[e.alias])}))}}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.chains={names:{1:"mainnet",3:"ropsten",4:"rinkeby",42:"kovan",6284:"goerli"},mainnet:r(503),ropsten:r(504),rinkeby:r(505),kovan:r(506),goerli:r(507)}},function(e){e.exports=JSON.parse('{"name":"mainnet","chainId":1,"networkId":1,"comment":"The Ethereum main chain","url":"https://ethstats.net/","genesis":{"hash":"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3","timestamp":null,"gasLimit":5000,"difficulty":17179869184,"nonce":"0x0000000000000042","extraData":"0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa","stateRoot":"0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544"},"hardforks":[{"name":"chainstart","block":0,"consensus":"pow","finality":null},{"name":"homestead","block":1150000,"consensus":"pow","finality":null},{"name":"dao","block":1920000,"consensus":"pow","finality":null},{"name":"tangerineWhistle","block":2463000,"consensus":"pow","finality":null},{"name":"spuriousDragon","block":2675000,"consensus":"pow","finality":null},{"name":"byzantium","block":4370000,"consensus":"pow","finality":null},{"name":"constantinople","block":7280000,"consensus":"pow","finality":null},{"name":"petersburg","block":7280000,"consensus":"pow","finality":null},{"name":"istanbul","block":null,"consensus":"pow","finality":null}],"bootstrapNodes":[{"ip":"13.93.211.84","port":30303,"id":"3f1d12044546b76342d59d4a05532c14b85aa669704bfe1f864fe079415aa2c02d743e03218e57a33fb94523adb54032871a6c51b2cc5514cb7c7e35b3ed0a99","location":"US-WEST","comment":"Go Bootnode"},{"ip":"191.235.84.50","port":30303,"id":"78de8a0916848093c73790ead81d1928bec737d565119932b98c6b100d944b7a95e94f847f689fc723399d2e31129d182f7ef3863f2b4c820abbf3ab2722344d","location":"BR","comment":"Go Bootnode"},{"ip":"13.75.154.138","port":30303,"id":"158f8aab45f6d19c6cbf4a089c2670541a8da11978a2f90dbf6a502a4a3bab80d288afdbeb7ec0ef6d92de563767f3b1ea9e8e334ca711e9f8e2df5a0385e8e6","location":"AU","comment":"Go Bootnode"},{"ip":"52.74.57.123","port":30303,"id":"1118980bf48b0a3640bdba04e0fe78b1add18e1cd99bf22d53daac1fd9972ad650df52176e7c7d89d1114cfef2bc23a2959aa54998a46afcf7d91809f0855082","location":"SG","comment":"Go Bootnode"}]}')},function(e){e.exports=JSON.parse('{"name":"ropsten","chainId":3,"networkId":3,"comment":"PoW test network","url":"https://github.com/ethereum/ropsten","genesis":{"hash":"0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d","timestamp":null,"gasLimit":16777216,"difficulty":1048576,"nonce":"0x0000000000000042","extraData":"0x3535353535353535353535353535353535353535353535353535353535353535","stateRoot":"0x217b0bbcfb72e2d57e28f33cb361b9983513177755dc3f33ce3e7022ed62b77b"},"hardforks":[{"name":"chainstart","block":0,"consensus":"pow","finality":null},{"name":"homestead","block":0,"consensus":"pow","finality":null},{"name":"dao","block":null,"consensus":"pow","finality":null},{"name":"tangerineWhistle","block":0,"consensus":"pow","finality":null},{"name":"spuriousDragon","block":10,"consensus":"pow","finality":null},{"name":"byzantium","block":1700000,"consensus":"pow","finality":null},{"name":"constantinople","block":4230000,"consensus":"pow","finality":null},{"name":"petersburg","block":4939394,"consensus":"pow","finality":null},{"name":"istanbul","block":null,"consensus":"pow","finality":null}],"bootstrapNodes":[{"ip":"52.176.7.10","port":"30303","id":"30b7ab30a01c124a6cceca36863ece12c4f5fa68e3ba9b0b51407ccc002eeed3b3102d20a88f1c1d3c3154e2449317b8ef95090e77b312d5cc39354f86d5d606","network":"Ropsten","chainId":3,"location":"US","comment":"US-Azure geth"},{"ip":"52.176.100.77","port":"30303","id":"865a63255b3bb68023b6bffd5095118fcc13e79dcf014fe4e47e065c350c7cc72af2e53eff895f11ba1bbb6a2b33271c1116ee870f266618eadfc2e78aa7349c","network":"Ropsten","chainId":3,"location":"US","comment":"US-Azure parity"},{"ip":"52.232.243.152","port":"30303","id":"6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f","network":"Ropsten","chainId":3,"location":"US","comment":"Parity"},{"ip":"192.81.208.223","port":"30303","id":"94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09","network":"Ropsten","chainId":3,"location":"US","comment":"@gpip"}]}')},function(e){e.exports=JSON.parse('{"name":"rinkeby","chainId":4,"networkId":4,"comment":"PoA test network","url":"https://www.rinkeby.io","genesis":{"hash":"0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177","timestamp":"0x58ee40ba","gasLimit":4700000,"difficulty":1,"nonce":"0x0000000000000000","extraData":"0x52657370656374206d7920617574686f7269746168207e452e436172746d616e42eb768f2244c8811c63729a21a3569731535f067ffc57839b00206d1ad20c69a1981b489f772031b279182d99e65703f0076e4812653aab85fca0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","stateRoot":"0x53580584816f617295ea26c0e17641e0120cab2f0a8ffb53a866fd53aa8e8c2d"},"hardforks":[{"name":"chainstart","block":0,"consensus":"poa","finality":null},{"name":"homestead","block":1,"consensus":"poa","finality":null},{"name":"dao","block":null,"consensus":"poa","finality":null},{"name":"tangerineWhistle","block":2,"consensus":"poa","finality":null},{"name":"spuriousDragon","block":3,"consensus":"poa","finality":null},{"name":"byzantium","block":1035301,"consensus":"poa","finality":null},{"name":"constantinople","block":null,"consensus":"poa","finality":null},{"name":"istanbul","block":null,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"52.169.42.101","port":30303,"id":"a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf","location":"IE","comment":""},{"ip":"52.3.158.184","port":30303,"id":"343149e4feefa15d882d9fe4ac7d88f885bd05ebb735e547f12e12080a9fa07c8014ca6fd7f373123488102fe5e34111f8509cf0b7de3f5b44339c9f25e87cb8","location":"","comment":"INFURA"}]}')},function(e){e.exports=JSON.parse('{"name":"kovan","chainId":42,"networkId":42,"comment":"Parity PoA test network","url":"https://kovan-testnet.github.io/website/","genesis":{"hash":"0xa3c565fc15c7478862d50ccd6561e3c06b24cc509bf388941c25ea985ce32cb9","timestamp":null,"gasLimit":6000000,"difficulty":131072,"nonce":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","extraData":"0x","stateRoot":"0x2480155b48a1cea17d67dbfdfaafe821c1d19cdd478c5358e8ec56dec24502b2"},"hardforks":[],"bootstrapNodes":[{"ip":"40.71.221.215","port":30303,"id":"56abaf065581a5985b8c5f4f88bd202526482761ba10be9bfdcd14846dd01f652ec33fde0f8c0fd1db19b59a4c04465681fcef50e11380ca88d25996191c52de","location":"","comment":"Parity Bootnode"},{"ip":"52.166.117.77","port":30303,"id":"d07827483dc47b368eaf88454fb04b41b7452cf454e194e2bd4c14f98a3278fed5d819dbecd0d010407fc7688d941ee1e58d4f9c6354d3da3be92f55c17d7ce3","location":"","comment":"Parity Bootnode"},{"ip":"52.165.239.18","port":30303,"id":"8fa162563a8e5a05eef3e1cd5abc5828c71344f7277bb788a395cce4a0e30baf2b34b92fe0b2dbbba2313ee40236bae2aab3c9811941b9f5a7e8e90aaa27ecba","location":"","comment":"Parity Bootnode"},{"ip":"52.243.47.56","port":30303,"id":"7e2e7f00784f516939f94e22bdc6cf96153603ca2b5df1c7cc0f90a38e7a2f218ffb1c05b156835e8b49086d11fdd1b3e2965be16baa55204167aa9bf536a4d9","location":"","comment":"Parity Bootnode"},{"ip":"40.68.248.100","port":30303,"id":"0518a3d35d4a7b3e8c433e7ffd2355d84a1304ceb5ef349787b556197f0c87fad09daed760635b97d52179d645d3e6d16a37d2cc0a9945c2ddf585684beb39ac","location":"","comment":"Parity Bootnode"}]}')},function(e){e.exports=JSON.parse('{"name":"goerli","chainId":5,"networkId":5,"comment":"Cross-client PoA test network","url":"https://github.com/goerli/testnet","genesis":{"hash":"0xbf7e331f7f7c1dd2e05159666b3bf8bc7a8a3a9eb1d518969eab529dd9b88c1a","timestamp":"0x5c51a607","gasLimit":10485760,"difficulty":1,"nonce":"0x0000000000000000","extraData":"0x22466c6578692069732061207468696e6722202d204166726900000000000000e0a2bd4258d2768837baa26a28fe71dc079f84c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","stateRoot":"0x5d6cded585e73c4e322c30c2f782a336316f17dd85a4863b9d838d2d4b8b3008"},"hardforks":[{"name":"chainstart","block":0,"consensus":"poa","finality":null},{"name":"homestead","block":0,"consensus":"poa","finality":null},{"name":"dao","block":0,"consensus":"poa","finality":null},{"name":"tangerineWhistle","block":0,"consensus":"poa","finality":null},{"name":"spuriousDragon","block":0,"consensus":"poa","finality":null},{"name":"byzantium","block":0,"consensus":"poa","finality":null},{"name":"constantinople","block":0,"consensus":"poa","finality":null},{"name":"petersburg","block":0,"consensus":"poa","finality":null},{"name":"istanbul","block":null,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"51.141.78.53","port":30303,"id":"011f758e6552d105183b1761c5e2dea0111bc20fd5f6422bc7f91e0fabbec9a6595caf6239b37feb773dddd3f87240d99d859431891e4a642cf2a0a9e6cbb98a","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"},{"ip":"13.93.54.137","port":30303,"id":"176b9417f511d05b6b2cf3e34b756cf0a7096b3094572a8f6ef4cdcb9d1f9d00683bf0f83347eebdf3b81c3521c2332086d9592802230bf528eaf606a1d9677b","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"},{"ip":"94.237.54.114","port":30313,"id":"46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"},{"ip":"52.64.155.147","port":30303,"id":"c1f8b7c2ac4453271fa07d8e9ecf9a2e8285aa0bd0c07df0131f47153306b0736fd3db8924e7a9bf0bed6b1d8d4f87362a71b033dc7c64547728d953e43e59b2","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"},{"ip":"213.186.16.82","port":30303,"id":"f4a9c6ee28586009fb5a96c8af13a58ed6d8315a9eee4772212c1d4d9cebe5a8b8a78ea4434f318726317d04a3f531a1ef0420cf9752605a562cfe858c46e263","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"}]}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hardforks=[["chainstart",r(509)],["homestead",r(510)],["dao",r(511)],["tangerineWhistle",r(512)],["spuriousDragon",r(513)],["byzantium",r(514)],["constantinople",r(515)],["petersburg",r(516)],["istanbul",r(517)]]},function(e){e.exports=JSON.parse('{"name":"chainstart","comment":"Start of the Ethereum main chain","eip":{"url":"","status":""},"status":"","gasConfig":{"minGasLimit":{"v":5000,"d":"Minimum the gas limit may ever be"},"gasLimitBoundDivisor":{"v":1024,"d":"The bound divisor of the gas limit, used in update calculations"}},"gasPrices":{"base":{"v":2,"d":"Gas base cost, used e.g. for ChainID opcode (Istanbul)"},"tierStep":{"v":[0,2,3,5,8,10,20],"d":"Once per operation, for a selection of them"},"exp":{"v":10,"d":"Once per EXP instuction"},"expByte":{"v":10,"d":"Times ceil(log256(exponent)) for the EXP instruction"},"sha3":{"v":30,"d":"Once per SHA3 operation"},"sha3Word":{"v":6,"d":"Once per word of the SHA3 operation\'s data"},"sload":{"v":50,"d":"Once per SLOAD operation"},"sstoreSet":{"v":20000,"d":"Once per SSTORE operation if the zeroness changes from zero"},"sstoreReset":{"v":5000,"d":"Once per SSTORE operation if the zeroness does not change from zero"},"sstoreRefund":{"v":15000,"d":"Once per SSTORE operation if the zeroness changes to zero"},"jumpdest":{"v":1,"d":"Refunded gas, once per SSTORE operation if the zeroness changes to zero"},"log":{"v":375,"d":"Per LOG* operation"},"logData":{"v":8,"d":"Per byte in a LOG* operation\'s data"},"logTopic":{"v":375,"d":"Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas"},"create":{"v":32000,"d":"Once per CREATE operation & contract-creation transaction"},"call":{"v":40,"d":"Once per CALL operation & message call transaction"},"callStipend":{"v":2300,"d":"Free gas given at beginning of call"},"callValueTransfer":{"v":9000,"d":"Paid for CALL when the value transfor is non-zero"},"callNewAccount":{"v":25000,"d":"Paid for CALL when the destination address didn\'t exist prior"},"selfdestructRefund":{"v":24000,"d":"Refunded following a selfdestruct operation"},"memory":{"v":3,"d":"Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL"},"quadCoeffDiv":{"v":512,"d":"Divisor for the quadratic particle of the memory cost equation"},"createData":{"v":200,"d":""},"tx":{"v":21000,"d":"Per transaction. NOTE: Not payable on data of calls between transactions"},"txCreation":{"v":32000,"d":"The cost of creating a contract via tx"},"txDataZero":{"v":4,"d":"Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions"},"txDataNonZero":{"v":68,"d":"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"},"copy":{"v":3,"d":"Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added"},"ecRecover":{"v":3000,"d":""},"sha256":{"v":60,"d":""},"sha256Word":{"v":12,"d":""},"ripemd160":{"v":600,"d":""},"ripemd160Word":{"v":120,"d":""},"identity":{"v":15,"d":""},"identityWord":{"v":3,"d":""}},"vm":{"stackLimit":{"v":1024,"d":"Maximum size of VM stack allowed"},"callCreateDepth":{"v":1024,"d":"Maximum depth of call/create stack"},"maxExtraDataSize":{"v":32,"d":"Maximum size extra data may be after Genesis"}},"pow":{"minimumDifficulty":{"v":131072,"d":"The minimum that the difficulty may ever be"},"difficultyBoundDivisor":{"v":2048,"d":"The bound divisor of the difficulty, used in the update calculations"},"durationLimit":{"v":13,"d":"The decision boundary on the blocktime duration used to determine whether difficulty should go up or not"},"epochDuration":{"v":30000,"d":"Duration between proof-of-work epochs"},"timebombPeriod":{"v":100000,"d":"Exponential difficulty timebomb period"},"minerReward":{"v":"5000000000000000000","d":"the amount a miner get rewarded for mining a block"}},"casper":{},"sharding":{}}')},function(e){e.exports=JSON.parse('{"name":"homestead","comment":"Homestead hardfork with protocol and network changes","eip":{"url":"https://eips.ethereum.org/EIPS/eip-606","status":"Final"},"gasConfig":{},"gasPrices":{},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(e){e.exports=JSON.parse('{"name":"dao","comment":"DAO rescue hardfork","eip":{"url":"https://eips.ethereum.org/EIPS/eip-779","status":"Final"},"gasConfig":{},"gasPrices":{},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(e){e.exports=JSON.parse('{"name":"tangerineWhistle","comment":"Hardfork with gas cost changes for IO-heavy operations","eip":{"url":"https://eips.ethereum.org/EIPS/eip-608","status":"Final"},"gasConfig":{},"gasPrices":{"sload":{"v":200,"d":"Once per SLOAD operation"},"call":{"v":700,"d":"Once per CALL operation & message call transaction"}},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(e){e.exports=JSON.parse('{"name":"spuriousDragon","comment":"HF with EIPs for simple replay attack protection, EXP cost increase, state trie clearing, contract code size limit","eip":{"url":"https://eips.ethereum.org/EIPS/eip-607","status":"Final"},"gasConfig":{},"gasPrices":{"expByte":{"v":50,"d":"Times ceil(log256(exponent)) for the EXP instruction"}},"vm":{"maxCodeSize":{"v":24576,"d":"Maximum length of contract code"}},"pow":{},"casper":{},"sharding":{}}')},function(e){e.exports=JSON.parse('{"name":"byzantium","comment":"Hardfork with new precompiles, instructions and other protocol changes","eip":{"url":"https://eips.ethereum.org/EIPS/eip-609","status":"Final"},"gasConfig":{},"gasPrices":{"modexpGquaddivisor":{"v":20,"d":"Gquaddivisor from modexp precompile for gas calculation"},"ecAdd":{"v":500,"d":"Gas costs for curve addition precompile"},"ecMul":{"v":40000,"d":"Gas costs for curve multiplication precompile"},"ecPairing":{"v":100000,"d":"Base gas costs for curve pairing precompile"},"ecPairingWord":{"v":80000,"d":"Gas costs regarding curve pairing precompile input length"}},"vm":{},"pow":{"minerReward":{"v":"3000000000000000000","d":"the amount a miner get rewarded for mining a block"}},"casper":{},"sharding":{}}')},function(e){e.exports=JSON.parse('{"name":"constantinople","comment":"Postponed hardfork including EIP-1283 (SSTORE gas metering changes)","eip":{"url":"https://eips.ethereum.org/EIPS/eip-1013","status":"Final"},"gasConfig":{},"gasPrices":{"netSstoreNoopGas":{"v":200,"d":"Once per SSTORE operation if the value doesn\'t change"},"netSstoreInitGas":{"v":20000,"d":"Once per SSTORE operation from clean zero"},"netSstoreCleanGas":{"v":5000,"d":"Once per SSTORE operation from clean non-zero"},"netSstoreDirtyGas":{"v":200,"d":"Once per SSTORE operation from dirty"},"netSstoreClearRefund":{"v":15000,"d":"Once per SSTORE operation for clearing an originally existing storage slot"},"netSstoreResetRefund":{"v":4800,"d":"Once per SSTORE operation for resetting to the original non-zero value"},"netSstoreResetClearRefund":{"v":19800,"d":"Once per SSTORE operation for resetting to the original zero value"}},"vm":{},"pow":{"minerReward":{"v":"2000000000000000000","d":"The amount a miner gets rewarded for mining a block"}},"casper":{},"sharding":{}}')},function(e){e.exports=JSON.parse('{"name":"petersburg","comment":"Aka constantinopleFix, removes EIP-1283, activate together with or after constantinople","eip":{"url":"https://github.com/ethereum/EIPs/pull/1716","status":"Draft"},"gasConfig":{},"gasPrices":{"netSstoreNoopGas":{"v":null,"d":"Removed along EIP-1283"},"netSstoreInitGas":{"v":null,"d":"Removed along EIP-1283"},"netSstoreCleanGas":{"v":null,"d":"Removed along EIP-1283"},"netSstoreDirtyGas":{"v":null,"d":"Removed along EIP-1283"},"netSstoreClearRefund":{"v":null,"d":"Removed along EIP-1283"},"netSstoreResetRefund":{"v":null,"d":"Removed along EIP-1283"},"netSstoreResetClearRefund":{"v":null,"d":"Removed along EIP-1283"}},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(e){e.exports=JSON.parse('{"name":"istanbul","comment":"HF targeted for October 2019 following the Constantinople/Petersburg HF","eip":{"url":"https://eips.ethereum.org/EIPS/eip-1679","status":"Draft"},"gasConfig":{},"gasPrices":{"blake2Round":{"v":1,"d":"Gas cost per round for the Blake2 F precompile"},"ecAdd":{"v":150,"d":"Gas costs for curve addition precompile"},"ecMul":{"v":6000,"d":"Gas costs for curve multiplication precompile"},"ecPairing":{"v":45000,"d":"Base gas costs for curve pairing precompile"},"ecPairingWord":{"v":34000,"d":"Gas costs regarding curve pairing precompile input length"},"txDataNonZero":{"v":16,"d":"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"},"sstoreSentryGasEIP2200":{"v":2300,"d":"Minimum gas required to be present for an SSTORE call, not consumed"},"sstoreNoopGasEIP2200":{"v":800,"d":"Once per SSTORE operation if the value doesn\'t change"},"sstoreDirtyGasEIP2200":{"v":800,"d":"Once per SSTORE operation if a dirty value is changed"},"sstoreInitGasEIP2200":{"v":20000,"d":"Once per SSTORE operation from clean zero to non-zero"},"sstoreInitRefundEIP2200":{"v":19200,"d":"Once per SSTORE operation for resetting to the original zero value"},"sstoreCleanGasEIP2200":{"v":5000,"d":"Once per SSTORE operation from clean non-zero to something else"},"sstoreCleanRefundEIP2200":{"v":4200,"d":"Once per SSTORE operation for resetting to the original non-zero value"},"sstoreClearRefundEIP2200":{"v":15000,"d":"Once per SSTORE operation for clearing an originally existing storage slot"}},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(e,t,r){"use strict";var n,i=(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var o=r(191),a=r(2),s=function(e){function t(t,r){void 0===t&&(t={}),void 0===r&&(r={});var n=e.call(this,t,r)||this;Object.defineProperty(n,"from",{enumerable:!0,configurable:!0,get:function(){return n.getSenderAddress()},set:function(e){e&&(n._from=o.toBuffer(e))}});var i=t;return i.from&&(n.from=o.toBuffer(i.from)),n}return i(t,e),t.prototype.hash=function(t){if(void 0===t&&(t=!0),t&&this._from&&""!==this._from.toString("hex")){var r=a.Buffer.concat([this._from,this._from.slice(0,12)]);this.sign(r)}return e.prototype.hash.call(this,t)},t}(r(190).default);t.default=s},function(e,t,r){"use strict";var n=r(11);e.exports=function(e){var t,r=this;return this.net.getId().then((function(e){return t=e,r.getBlock(0)})).then((function(r){var i="private";return"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"===r.hash&&1===t&&(i="main"),"0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303"===r.hash&&2===t&&(i="morden"),"0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d"===r.hash&&3===t&&(i="ropsten"),"0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177"===r.hash&&4===t&&(i="rinkeby"),"0xbf7e331f7f7c1dd2e05159666b3bf8bc7a8a3a9eb1d518969eab529dd9b88c1a"===r.hash&&5===t&&(i="goerli"),"0xa3c565fc15c7478862d50ccd6561e3c06b24cc509bf388941c25ea985ce32cb9"===r.hash&&42===t&&(i="kovan"),n.isFunction(e)&&e(null,i),i})).catch((function(t){if(!n.isFunction(e))throw t;e(t)}))}},function(e,t,r){"use strict";var n=r(31),i=r(62).subscriptions,o=r(34),a=r(64),s=function(){var e=this;n.packageInit(this,arguments);var t=this.setRequestManager;this.setRequestManager=function(r){return t(r),e.net.setRequestManager(r),!0};var r=this.setProvider;this.setProvider=function(){r.apply(e,arguments),e.setRequestManager(e._requestManager)},this.net=new a(this),[new i({name:"subscribe",type:"shh",subscriptions:{messages:{params:1}}}),new o({name:"getVersion",call:"shh_version",params:0}),new o({name:"getInfo",call:"shh_info",params:0}),new o({name:"setMaxMessageSize",call:"shh_setMaxMessageSize",params:1}),new o({name:"setMinPoW",call:"shh_setMinPoW",params:1}),new o({name:"markTrustedPeer",call:"shh_markTrustedPeer",params:1}),new o({name:"newKeyPair",call:"shh_newKeyPair",params:0}),new o({name:"addPrivateKey",call:"shh_addPrivateKey",params:1}),new o({name:"deleteKeyPair",call:"shh_deleteKeyPair",params:1}),new o({name:"hasKeyPair",call:"shh_hasKeyPair",params:1}),new o({name:"getPublicKey",call:"shh_getPublicKey",params:1}),new o({name:"getPrivateKey",call:"shh_getPrivateKey",params:1}),new o({name:"newSymKey",call:"shh_newSymKey",params:0}),new o({name:"addSymKey",call:"shh_addSymKey",params:1}),new o({name:"generateSymKeyFromPassword",call:"shh_generateSymKeyFromPassword",params:1}),new o({name:"hasSymKey",call:"shh_hasSymKey",params:1}),new o({name:"getSymKey",call:"shh_getSymKey",params:1}),new o({name:"deleteSymKey",call:"shh_deleteSymKey",params:1}),new o({name:"newMessageFilter",call:"shh_newMessageFilter",params:1}),new o({name:"getFilterMessages",call:"shh_getFilterMessages",params:1}),new o({name:"deleteMessageFilter",call:"shh_deleteMessageFilter",params:1}),new o({name:"post",call:"shh_post",params:1,inputFormatter:[null]}),new o({name:"unsubscribe",call:"shh_unsubscribe",params:1})].forEach((function(t){t.attachToObject(e),t.setRequestManager(e._requestManager)}))};s.prototype.clearSubscriptions=function(){this._requestManager.clearSubscriptions()},n.addProviders(s),e.exports=s},function(e,t,r){"use strict";var n=r(11),i=r(522),o=function e(t){this.givenProvider=e.givenProvider,t&&t._requestManager&&(t=t.currentProvider),"undefined"!=typeof document&&(this.pick=i.pick),this.setProvider(t)};o.givenProvider=null,"undefined"!=typeof ethereum&ðereum.bzz&&(o.givenProvider=ethereum.bzz),o.prototype.setProvider=function(e){if(n.isObject(e)&&n.isString(e.bzz)&&(e=e.bzz),!n.isString(e)){this.currentProvider=null;var t=new Error("No provider set, please set one using bzz.setProvider().");return this.download=this.upload=this.isAvailable=function(){throw t},!1}return this.currentProvider=e,this.download=i.at(e).download,this.upload=i.at(e).upload,this.isAvailable=i.at(e).isAvailable,!0},e.exports=o},function(e,t,r){"use strict";var n=function(){throw"This swarm.js function isn't available on the browser."},i={readFile:n},o={download:n,safeDownloadArchived:n,directoryTree:n},a={platform:n,arch:n},s={join:n,slice:n},f={spawn:n},u={lookup:n},c=r(523),h=r(212),d=r(550),l=r(552),p=r(553);e.exports=p({fs:i,files:o,os:a,path:s,child_process:f,defaultArchives:{},mimetype:u,request:c,downloadUrl:null,bytes:h,hash:d,pick:l})},function(e,t,r){"use strict";var n=r(524),i=r(527),o=r(103),a=r(528),s=r(529),f=function(){};e.exports=function(e,t,r){if(!e||"string"!=typeof e)throw new TypeError("must specify a URL");"function"==typeof t&&(r=t,t={});if(r&&"function"!=typeof r)throw new TypeError("expected cb to be undefined or a function");r=r||f;var u=(t=t||{}).json?"json":"text",c=(t=o({responseType:u},t)).headers||{},h=(t.method||"GET").toUpperCase(),d=t.query;d&&("string"!=typeof d&&(d=n.stringify(d)),e=i(e,d));"json"===t.responseType&&a(c,"Accept","application/json");t.json&&"GET"!==h&&"HEAD"!==h&&(a(c,"Content-Type","application/json"),t.body=JSON.stringify(t.body));return t.method=h,t.url=e,t.headers=c,delete t.query,delete t.json,s(t,r)}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(525),o=r(103),a=r(526);function s(e,t){return t.encode?t.strict?i(e):encodeURIComponent(e):e}function f(e){var t=e.indexOf("?");return-1===t?"":e.slice(t+1)}function u(e,t){var r=function(e){var t;switch(e.arrayFormat){case"index":return function(e,r,n){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===n[e]&&(n[e]={}),n[e][t[1]]=r):n[e]=r};case"bracket":return function(e,r,n){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==n[e]?n[e]=[].concat(n[e],r):n[e]=[r]:n[e]=r};default:return function(e,t,r){void 0!==r[e]?r[e]=[].concat(r[e],t):r[e]=t}}}(t=o({arrayFormat:"none"},t)),i=Object.create(null);return"string"!=typeof e?i:(e=e.trim().replace(/^[?#&]/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),n=t.shift(),o=t.length>0?t.join("="):void 0;o=void 0===o?null:a(o),r(a(n),o,i)})),Object.keys(i).sort().reduce((function(e,t){var r=i[t];return Boolean(r)&&"object"===(0,n.default)(r)&&!Array.isArray(r)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"===(0,n.default)(t)?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(r):e[t]=r,e}),Object.create(null))):i}t.extract=f,t.parse=u,t.stringify=function(e,t){!1===(t=o({encode:!0,strict:!0,arrayFormat:"none"},t)).sort&&(t.sort=function(){});var r=function(e){switch(e.arrayFormat){case"index":return function(t,r,n){return null===r?[s(t,e),"[",n,"]"].join(""):[s(t,e),"[",s(n,e),"]=",s(r,e)].join("")};case"bracket":return function(t,r){return null===r?s(t,e):[s(t,e),"[]=",s(r,e)].join("")};default:return function(t,r){return null===r?s(t,e):[s(t,e),"=",s(r,e)].join("")}}}(t);return e?Object.keys(e).sort(t.sort).map((function(n){var i=e[n];if(void 0===i)return"";if(null===i)return s(n,t);if(Array.isArray(i)){var o=[];return i.slice().forEach((function(e){void 0!==e&&o.push(r(n,e,o.length))})),o.join("&")}return s(n,t)+"="+s(i,t)})).filter((function(e){return e.length>0})).join("&"):""},t.parseUrl=function(e,t){return{url:e.split("?")[0]||"",query:u(f(e),t)}}},function(e,t,r){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}},function(e,t,r){"use strict";var n=r(0)(r(1)),i=new RegExp("%[a-f0-9]{2}","gi"),o=new RegExp("(%[a-f0-9]{2})+","gi");function a(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var r=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],a(r),a(n))}function s(e){try{return decodeURIComponent(e)}catch(n){for(var t=e.match(i),r=1;r0&&(h=setTimeout((function(){if(!u){u=!0,c.abort("timeout");var e=new Error("XMLHttpRequest timeout");e.code="ETIMEDOUT",i(e)}}),e.timeout)),c.setRequestHeader)for(s in b)b.hasOwnProperty(s)&&c.setRequestHeader(s,b[s]);else if(e.headers&&!function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}(e.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in e&&(c.responseType=e.responseType),"beforeSend"in e&&"function"==typeof e.beforeSend&&e.beforeSend(c),c.send(p||null),c}e.exports=f,e.exports.default=f,f.XMLHttpRequest=n.XMLHttpRequest||function(){},f.XDomainRequest="withCredentials"in new f.XMLHttpRequest?f.XMLHttpRequest:n.XDomainRequest,function(e,t){for(var r=0;r0&&!o.call(e,0))for(var m=0;m0)for(var v=0;v>0},ToUint32:function(e){return this.ToNumber(e)>>>0},ToUint16:function(e){var t=this.ToNumber(e);if(u(t)||0===t||!c(t))return 0;var r=h(t)*Math.floor(Math.abs(t));return d(r,65536)},ToString:function(e){return s(e)},ToObject:function(e){return this.CheckObjectCoercible(e),o(e)},CheckObjectCoercible:function(e,t){if(null==e)throw new a(t||"Cannot call method on "+e);return e},IsCallable:l,SameValue:function(e,t){return e===t?0!==e||1/e==1/t:u(e)&&u(t)},Type:function(e){return null===e?"Null":void 0===e?"Undefined":"function"==typeof e||"object"===(0,n.default)(e)?"Object":"number"==typeof e?"Number":"boolean"==typeof e?"Boolean":"string"==typeof e?"String":void 0},IsPropertyDescriptor:function(e){if("Object"!==this.Type(e))return!1;var t={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var r in e)if(b(e,r)&&!t[r])return!1;var n=b(e,"[[Value]]"),i=b(e,"[[Get]]")||b(e,"[[Set]]");if(n&&i)throw new a("Property Descriptors may not be both accessor and data descriptors");return!0},IsAccessorDescriptor:function(e){return void 0!==e&&(f(this,"Property Descriptor","Desc",e),!(!b(e,"[[Get]]")&&!b(e,"[[Set]]")))},IsDataDescriptor:function(e){return void 0!==e&&(f(this,"Property Descriptor","Desc",e),!(!b(e,"[[Value]]")&&!b(e,"[[Writable]]")))},IsGenericDescriptor:function(e){return void 0!==e&&(f(this,"Property Descriptor","Desc",e),!this.IsAccessorDescriptor(e)&&!this.IsDataDescriptor(e))},FromPropertyDescriptor:function(e){if(void 0===e)return e;if(f(this,"Property Descriptor","Desc",e),this.IsDataDescriptor(e))return{value:e["[[Value]]"],writable:!!e["[[Writable]]"],enumerable:!!e["[[Enumerable]]"],configurable:!!e["[[Configurable]]"]};if(this.IsAccessorDescriptor(e))return{get:e["[[Get]]"],set:e["[[Set]]"],enumerable:!!e["[[Enumerable]]"],configurable:!!e["[[Configurable]]"]};throw new a("FromPropertyDescriptor must be called with a fully populated Property Descriptor")},ToPropertyDescriptor:function(e){if("Object"!==this.Type(e))throw new a("ToPropertyDescriptor requires an object");var t={};if(b(e,"enumerable")&&(t["[[Enumerable]]"]=this.ToBoolean(e.enumerable)),b(e,"configurable")&&(t["[[Configurable]]"]=this.ToBoolean(e.configurable)),b(e,"value")&&(t["[[Value]]"]=e.value),b(e,"writable")&&(t["[[Writable]]"]=this.ToBoolean(e.writable)),b(e,"get")){var r=e.get;if(void 0!==r&&!this.IsCallable(r))throw new TypeError("getter must be a function");t["[[Get]]"]=r}if(b(e,"set")){var n=e.set;if(void 0!==n&&!this.IsCallable(n))throw new a("setter must be a function");t["[[Set]]"]=n}if((b(t,"[[Get]]")||b(t,"[[Set]]"))&&(b(t,"[[Value]]")||b(t,"[[Writable]]")))throw new a("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");return t}};e.exports=m},function(e,t,r){"use strict";var n=r(209),i=n("%TypeError%"),o=n("%SyntaxError%"),a=r(210),s={"Property Descriptor":function(e,t){if("Object"!==e.Type(t))return!1;var r={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var n in t)if(a(t,n)&&!r[n])return!1;var o=a(t,"[[Value]]"),s=a(t,"[[Get]]")||a(t,"[[Set]]");if(o&&s)throw new i("Property Descriptors may not be both accessor and data descriptors");return!0}};e.exports=function(e,t,r,n){var a=s[t];if("function"!=typeof a)throw new o("unknown record type: "+t);if(!a(e,n))throw new i(r+" must be a "+t);console.log(a(e,n),n)}},function(e,t,r){"use strict";e.exports=Number.isNaN||function(e){return e!=e}},function(e,t,r){"use strict";var n=Number.isNaN||function(e){return e!=e};e.exports=Number.isFinite||function(e){return"number"==typeof e&&!n(e)&&e!==1/0&&e!==-1/0}},function(e,t,r){"use strict";e.exports=function(e){return e>=0?1:-1}},function(e,t,r){"use strict";e.exports=function(e,t){var r=e%t;return Math.floor(r>=0?r:r+t)}},function(e,t,r){"use strict";var n=Object.prototype.toString,i=r(545),o=r(106),a=function(e){var t;if((t=arguments.length>1?arguments[1]:"[object Date]"===n.call(e)?String:Number)===String||t===Number){var r,a,s=t===String?["toString","valueOf"]:["valueOf","toString"];for(a=0;a1?a(e,arguments[1]):a(e)}},function(e,t,r){"use strict";var n=r(0)(r(1));e.exports=function(e){return null===e||"function"!=typeof e&&"object"!==(0,n.default)(e)}},function(e,t,r){"use strict";var n=r(206),i=r(211);e.exports=function(){var e=i();return n(String.prototype,{trim:e},{trim:function(){return String.prototype.trim!==e}}),e}},function(e,t,r){"use strict";var n=r(106),i=Object.prototype.toString,o=Object.prototype.hasOwnProperty,a=function(e,t,r){for(var n=0,i=e.length;n=3&&(o=r),"[object Array]"===i.call(e)?a(e,t,o):"string"==typeof e?s(e,t,o):f(e,t,o)}},function(e,t,r){"use strict";e.exports=function(e,t){return t?{statusCode:t.statusCode,headers:t.headers,method:e.method,url:e.url,rawRequest:t.rawRequest?t.rawRequest:t}:null}},function(e,t,r){"use strict";var n=function(e,t){for(var r=[],n=0;n>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(f<<1|s>>>31),e[0]^=t,e[1]^=r,e[10]^=t,e[11]^=r,e[20]^=t,e[21]^=r,e[30]^=t,e[31]^=r,e[40]^=t,e[41]^=r,t=i^(u<<1|c>>>31),r=o^(c<<1|u>>>31),e[2]^=t,e[3]^=r,e[12]^=t,e[13]^=r,e[22]^=t,e[23]^=r,e[32]^=t,e[33]^=r,e[42]^=t,e[43]^=r,t=s^(h<<1|d>>>31),r=f^(d<<1|h>>>31),e[4]^=t,e[5]^=r,e[14]^=t,e[15]^=r,e[24]^=t,e[25]^=r,e[34]^=t,e[35]^=r,e[44]^=t,e[45]^=r,t=u^(l<<1|p>>>31),r=c^(p<<1|l>>>31),e[6]^=t,e[7]^=r,e[16]^=t,e[17]^=r,e[26]^=t,e[27]^=r,e[36]^=t,e[37]^=r,e[46]^=t,e[47]^=r,t=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),e[8]^=t,e[9]^=r,e[18]^=t,e[19]^=r,e[28]^=t,e[29]^=r,e[38]^=t,e[39]^=r,e[48]^=t,e[49]^=r,b=e[0],m=e[1],W=e[11]<<4|e[10]>>>28,$=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,N=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,fe=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,T=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,Y=e[22]<<10|e[23]>>>22,Z=e[23]<<10|e[22]>>>22,O=e[33]<<13|e[32]>>>19,R=e[32]<<13|e[33]>>>19,ue=e[42]<<2|e[43]>>>30,ce=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,re=e[4]<<30|e[5]>>>2,j=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,g=e[25]<<11|e[24]>>>21,w=e[24]<<11|e[25]>>>21,J=e[34]<<15|e[35]>>>17,X=e[35]<<15|e[34]>>>17,U=e[45]<<29|e[44]>>>3,C=e[44]<<29|e[45]>>>3,E=e[6]<<28|e[7]>>>4,M=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,F=e[26]<<25|e[27]>>>7,D=e[27]<<25|e[26]>>>7,_=e[36]<<21|e[37]>>>11,k=e[37]<<21|e[36]>>>11,Q=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,V=e[8]<<27|e[9]>>>5,G=e[9]<<27|e[8]>>>5,x=e[18]<<20|e[19]>>>12,I=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,z=e[38]<<8|e[39]>>>24,q=e[39]<<8|e[38]>>>24,A=e[48]<<14|e[49]>>>18,S=e[49]<<14|e[48]>>>18,e[0]=b^~v&g,e[1]=m^~y&w,e[10]=E^~x&P,e[11]=M^~I&N,e[20]=B^~j&F,e[21]=T^~L&D,e[30]=V^~W&Y,e[31]=G^~$&Z,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=x^~P&O,e[13]=I^~N&R,e[22]=j^~F&z,e[23]=L^~D&q,e[32]=W^~Y&J,e[33]=$^~Z&X,e[42]=ne^~oe&se,e[43]=ie^~ae&fe,e[4]=g^~_&A,e[5]=w^~k&S,e[14]=P^~O&U,e[15]=N^~R&C,e[24]=F^~z&H,e[25]=D^~q&K,e[34]=Y^~J&Q,e[35]=Z^~X&ee,e[44]=oe^~se&ue,e[45]=ae^~fe&ce,e[6]=_^~A&b,e[7]=k^~S&m,e[16]=O^~U&E,e[17]=R^~C&M,e[26]=z^~H&B,e[27]=q^~K&T,e[36]=J^~Q&V,e[37]=X^~ee&G,e[46]=se^~ue&te,e[47]=fe^~ce&re,e[8]=A^~b&v,e[9]=S^~m&y,e[18]=U^~E&x,e[19]=C^~M&I,e[28]=H^~B&j,e[29]=K^~T&L,e[38]=Q^~V&W,e[39]=ee^~G&$,e[48]=ue^~te&ne,e[49]=ce^~re&ie,e[0]^=a[n],e[1]^=a[n+1]},f=function(e){return function(t){var r;if("0x"===t.slice(0,2)){r=[];for(var a=2,f=t.length;a>2]|=t[l]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|63&r)<=57344?(f[m>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<=u){for(e.start=m-u,e.block=f[c],m=0;m>2]|=i[3&m],e.lastByteIndex===u)for(f[0]=f[c],m=1;m>4&15]+n[15&p]+n[p>>12&15]+n[p>>8&15]+n[p>>20&15]+n[p>>16&15]+n[p>>28&15]+n[p>>24&15];v%c==0&&(s(d),m=0)}return"0x"+b}(function(e){return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(e<<1)>>5,outputBlocks:e>>5,s:(t=[0,0,0,0,0,0,0,0,0,0],[].concat(t,t,t,t,t))};var t}(e),r)}};e.exports={keccak256:f(256),keccak512:f(512),keccak256s:f(256),keccak512s:f(512)}},function(e,t,r){"use strict";var n=function(e){return function(){return new Promise((function(t,r){var n,i=function(r){var n={},i=r.target.files.length,o=0;[].map.call(r.target.files,(function(r){var a=new FileReader;a.onload=function(a){var s=new Uint8Array(a.target.result);if("directory"===e){var f=r.webkitRelativePath;n[f.slice(f.indexOf("/")+1)]={type:"text/plain",data:s},++o===i&&t(n)}else if("file"===e){var u=r.webkitRelativePath;t({type:mimetype.lookup(u),data:s})}else t(s)},a.readAsArrayBuffer(r)}))};"directory"===e?((n=document.createElement("input")).addEventListener("change",i),n.type="file",n.webkitdirectory=!0,n.mozdirectory=!0,n.msdirectory=!0,n.odirectory=!0,n.directory=!0):((n=document.createElement("input")).addEventListener("change",i),n.type="file");var o=document.createEvent("MouseEvents");o.initEvent("click",!0,!1),n.dispatchEvent(o)}))}};e.exports={data:n("data"),file:n("file"),directory:n("directory")}},function(e,t,r){"use strict";e.exports=function(e){var t=e.fs,r=e.files,n=e.os,i=e.path,o=e.child_process,a=e.mimetype,s=e.defaultArchives,f=e.request,u=e.downloadUrl,c=e.bytes,h=e.hash,d=e.pick,l=function(e){return function(t){for(var r={},n=0,i=e.length;n=400?n(new Error("Error ".concat(i.statusCode,"."))):r(new Uint8Array(t))}))}))}},m=function(e){return function(t){return function t(r){return function(n){return function(i){var o=function(e){return void 0===e.path?Promise.resolve():"application/bzz-manifest+json"===e.contentType?t(e.hash)(n+e.path)(i):Promise.resolve((r=n+e.path,function(e){return function(t){return t[r]=e,t}})(function(e){return{type:e.contentType,hash:e.hash}}(e))(i));var r};return b(e)(r).then((function(e){return JSON.parse(T(e)).entries})).then((function(e){return Promise.all(e.map(o))})).then((function(){return i}))}}}(t)("")({})}},v=function(e){return function(t){return m(e)(t).then((function(e){return l(Object.keys(e))(Object.keys(e).map((function(t){return e[t].hash})))}))}},y=function(e){return function(t){return m(e)(t).then((function(t){var r=Object.keys(t),n=r.map((function(e){return t[e].hash})),i=r.map((function(e){return t[e].type})),o=n.map(b(e));return Promise.all(o).then((function(e){return l(r)(function(e){return e.map((function(e,t){return{type:i[t],data:e}}))}(e))}))}))}},g=function(e){return function(t){return function(n){return r.download(p(e)(t))(n)}}},w=function(e){return function(t){return function(r){return v(e)(t).then((function(t){var n=[];for(var o in t)if(o.length>0){var a=i.join(r,o);n.push(g(e)(t[o])(a))}return Promise.all(n).then((function(){return r}))}))}}},_=function(e){return function(t){return new Promise((function(r,n){var i={body:"string"==typeof t?j(t):t,method:"POST"};f("".concat(e,"/bzz-raw:/"),i,(function(e,t){return e?n(e):r(t)}))}))}},k=function(e){return function(t){return function(r){return function(n){return function i(o){var a="/"===r[0]?r:"/"+r,s="".concat(e,"/bzz:/").concat(t).concat(a),u={method:"PUT",headers:{"Content-Type":n.type},body:n.data};return new Promise((function(e,t){f(s,u,(function(r,n){return r?t(r):-1!==n.indexOf("error")?t(n):e(n)}))})).catch((function(e){return o>0&&i(o-1)}))}(3)}}}},A=function(e){return function(t){return E(e)({"":t})}},S=function(e){return function(r){return t.readFile(r).then((function(t){return A(e)({type:a.lookup(r),data:t})}))}},E=function(e){return function(t){return _(e)("{}").then((function(r){return Object.keys(t).reduce((function(r,n){return r.then(function(r){return function(n){return k(e)(n)(r)(t[r])}}(n))}),Promise.resolve(r))}))}},M=function(e){return function(r){return t.readFile(r).then(_(e))}},x=function(e){return function(n){return function(i){return r.directoryTree(i).then((function(e){return Promise.all(e.map((function(e){return t.readFile(e)}))).then((function(t){var r=e.map((function(e){return e.slice(i.length)})),n=e.map((function(e){return a.lookup(e)||"text/plain"}));return l(r)(t.map((function(e,t){return{type:n[t],data:e}})))}))})).then((function(e){return(t=n?{"":e[n]}:{},function(e){var r={};for(var n in t)r[n]=t[n];for(var i in e)r[i]=e[i];return r})(e);var t})).then(E(e))}}},I=function(e){return function(t){if("data"===t.pick)return d.data().then(_(e));if("file"===t.pick)return d.file().then(A(e));if("directory"===t.pick)return d.directory().then(E(e));if(t.path)switch(t.kind){case"data":return M(e)(t.path);case"file":return S(e)(t.path);case"directory":return x(e)(t.defaultFile)(t.path)}else{if(t.length||"string"==typeof t)return _(e)(t);if(t instanceof Object)return E(e)(t)}return Promise.reject(new Error("Bad arguments"))}},P=function(e){return function(t){return function(r){return C(e)(t).then((function(n){return n?r?w(e)(t)(r):y(e)(t):r?g(e)(t)(r):b(e)(t)}))}}},N=function(e,t){var i=n.platform().replace("win32","windows")+"-"+("x64"===n.arch()?"amd64":"386"),o=(t||s)[i],a=u+o.archive+".tar.gz",f=o.archiveMD5,c=o.binaryMD5;return r.safeDownloadArchived(a)(f)(c)(e)},O=function(e){return new Promise((function(t,r){var n=o.spawn,i=function(e){return function(t){return-1!==(""+t).indexOf(e)}},a=e.account,s=e.password,f=e.dataDir,u=e.ensApi,c=e.privateKey,h=0,d=n(e.binPath,["--bzzaccount",a||c,"--datadir",f,"--ens-api",u]),l=function(e){0===h&&i("Passphrase")(e)?setTimeout((function(){h=1,d.stdin.write(s+"\n")}),500):i("Swarm http proxy started")(e)&&(h=2,clearTimeout(p),t(d))};d.stdout.on("data",l),d.stderr.on("data",l);var p=setTimeout((function(){return r(new Error("Couldn't start swarm process."))}),2e4)}))},R=function(e){return new Promise((function(t,r){e.stderr.removeAllListeners("data"),e.stdout.removeAllListeners("data"),e.stdin.removeAllListeners("error"),e.removeAllListeners("error"),e.removeAllListeners("exit"),e.kill("SIGINT");var n=setTimeout((function(){return e.kill("SIGKILL")}),8e3);e.once("close",(function(){clearTimeout(n),t()}))}))},U=function(e){return _(e)("test").then((function(e){return"c9a99c7d326dcc6316f32fe2625b311f6dc49a175e6877681ded93137d3569e7"===e})).catch((function(){return!1}))},C=function(e){return function(t){return b(e)(t).then((function(e){try{return!!JSON.parse(T(e)).entries}catch(e){return!1}}))}},B=function(e){return function(t,r,n,i,o){var a;return void 0!==t&&(a=e(t)),void 0!==r&&(a=e(r)),void 0!==n&&(a=e(n)),void 0!==i&&(a=e(i)),void 0!==o&&(a=e(o)),a}},T=function(e){return c.toString(c.fromUint8Array(e))},j=function(e){return c.toUint8Array(c.fromString(e))},L=function(e){return{download:function(t,r){return P(e)(t)(r)},downloadData:B(b(e)),downloadDataToDisk:B(g(e)),downloadDirectory:B(y(e)),downloadDirectoryToDisk:B(w(e)),downloadEntries:B(m(e)),downloadRoutes:B(v(e)),isAvailable:function(){return U(e)},upload:function(t){return I(e)(t)},uploadData:B(_(e)),uploadFile:B(A(e)),uploadFileFromDisk:B(A(e)),uploadDataFromDisk:B(M(e)),uploadDirectory:B(E(e)),uploadDirectoryFromDisk:B(x(e)),uploadToManifest:B(k(e)),pick:d,hash:h,fromString:j,toString:T}};return{at:L,local:function(e){return function(t){return U("http://localhost:8500").then((function(r){return r?t(L("http://localhost:8500")).then((function(){})):N(e.binPath,e.archives).onData((function(t){return(e.onProgress||function(){})(t.length)})).then((function(){return O(e)})).then((function(e){return t(L("http://localhost:8500")).then((function(){return e}))})).then(R)}))}},download:P,downloadBinary:N,downloadData:b,downloadDataToDisk:g,downloadDirectory:y,downloadDirectoryToDisk:w,downloadEntries:m,downloadRoutes:v,isAvailable:U,startProcess:O,stopProcess:R,upload:I,uploadData:_,uploadDataFromDisk:M,uploadFile:A,uploadFileFromDisk:S,uploadDirectory:E,uploadDirectoryFromDisk:x,uploadToManifest:k,pick:d,hash:h,fromString:j,toString:T}}}])})); +!function(){var r="object"===("undefined"==typeof window?"undefined":(0,i.default)(window))?window:{};!r.JS_SHA3_NO_NODE_JS&&"object"===(void 0===t?"undefined":(0,i.default)(t))&&t.versions&&t.versions.node&&(r=e);for(var o=!r.JS_SHA3_NO_COMMON_JS&&"object"===(0,i.default)(n)&&n.exports,a="0123456789abcdef".split(""),s=[0,8,16,24],u=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],f=[224,256,384,512],c=["hex","buffer","arrayBuffer","array"],h=function(t,e,r){return function(n){return new k(t,e,t).update(n)[r]()}},d=function(t,e,r){return function(n,i){return new k(t,e,i).update(n)[r]()}},l=function(t,e){var r=h(t,e,"hex");r.create=function(){return new k(t,e,t)},r.update=function(t){return r.create().update(t)};for(var n=0;n>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}k.prototype.update=function(t){var e="string"!=typeof t;e&&t.constructor===ArrayBuffer&&(t=new Uint8Array(t));for(var r,n,i=t.length,o=this.blocks,a=this.byteCount,u=this.blockCount,f=0,c=this.s;f>2]|=t[f]<>2]|=n<>2]|=(192|n>>6)<>2]|=(128|63&n)<=57344?(o[r>>2]|=(224|n>>12)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<>2]|=(240|n>>18)<>2]|=(128|n>>12&63)<>2]|=(128|n>>6&63)<>2]|=(128|63&n)<=a){for(this.start=r-a,this.block=o[u],r=0;r>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e>4&15]+a[15&t]+a[t>>12&15]+a[t>>8&15]+a[t>>20&15]+a[t>>16&15]+a[t>>28&15]+a[t>>24&15];s%e==0&&(A(r),o=0)}return i&&(t=r[o],i>0&&(u+=a[t>>4&15]+a[15&t]),i>1&&(u+=a[t>>12&15]+a[t>>8&15]),i>2&&(u+=a[t>>20&15]+a[t>>16&15])),u},k.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,i=this.extraBytes,o=0,a=0,s=this.outputBits>>3;t=i?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(t);a>8&255,u[t+2]=e>>16&255,u[t+3]=e>>24&255;s%r==0&&A(n)}return o&&(t=s<<2,e=n[a],o>0&&(u[t]=255&e),o>1&&(u[t+1]=e>>8&255),o>2&&(u[t+2]=e>>16&255)),u};var A=function(t){var e,r,n,i,o,a,s,f,c,h,d,l,p,b,m,y,v,g,w,_,k,A,S,M,E,x,I,O,P,C,B,T,R,U,N,j,L,F,D,q,z,H,K,V,G,W,Y,$,J,Z,X,Q,tt,et,rt,nt,it,ot,at,st,ut,ft,ct;for(n=0;n<48;n+=2)i=t[0]^t[10]^t[20]^t[30]^t[40],o=t[1]^t[11]^t[21]^t[31]^t[41],a=t[2]^t[12]^t[22]^t[32]^t[42],s=t[3]^t[13]^t[23]^t[33]^t[43],f=t[4]^t[14]^t[24]^t[34]^t[44],c=t[5]^t[15]^t[25]^t[35]^t[45],h=t[6]^t[16]^t[26]^t[36]^t[46],d=t[7]^t[17]^t[27]^t[37]^t[47],e=(l=t[8]^t[18]^t[28]^t[38]^t[48])^(a<<1|s>>>31),r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(s<<1|a>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(f<<1|c>>>31),r=o^(c<<1|f>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=a^(h<<1|d>>>31),r=s^(d<<1|h>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=f^(l<<1|p>>>31),r=c^(p<<1|l>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,b=t[0],m=t[1],W=t[11]<<4|t[10]>>>28,Y=t[10]<<4|t[11]>>>28,O=t[20]<<3|t[21]>>>29,P=t[21]<<3|t[20]>>>29,st=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,U=t[2]<<1|t[3]>>>31,N=t[3]<<1|t[2]>>>31,y=t[13]<<12|t[12]>>>20,v=t[12]<<12|t[13]>>>20,$=t[22]<<10|t[23]>>>22,J=t[23]<<10|t[22]>>>22,C=t[33]<<13|t[32]>>>19,B=t[32]<<13|t[33]>>>19,ft=t[42]<<2|t[43]>>>30,ct=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,j=t[14]<<6|t[15]>>>26,L=t[15]<<6|t[14]>>>26,g=t[25]<<11|t[24]>>>21,w=t[24]<<11|t[25]>>>21,Z=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,T=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,M=t[6]<<28|t[7]>>>4,E=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,F=t[26]<<25|t[27]>>>7,D=t[27]<<25|t[26]>>>7,_=t[36]<<21|t[37]>>>11,k=t[37]<<21|t[36]>>>11,Q=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,V=t[8]<<27|t[9]>>>5,G=t[9]<<27|t[8]>>>5,x=t[18]<<20|t[19]>>>12,I=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,at=t[28]<<7|t[29]>>>25,q=t[38]<<8|t[39]>>>24,z=t[39]<<8|t[38]>>>24,A=t[48]<<14|t[49]>>>18,S=t[49]<<14|t[48]>>>18,t[0]=b^~y&g,t[1]=m^~v&w,t[10]=M^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&$,t[31]=G^~Y&J,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=y^~g&_,t[3]=v^~w&k,t[12]=x^~O&C,t[13]=I^~P&B,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~$&Z,t[33]=Y^~J&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&S,t[14]=O^~C&T,t[15]=P^~B&R,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=$^~Z&Q,t[35]=J^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&b,t[7]=k^~S&m,t[16]=C^~T&M,t[17]=B^~R&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=Z^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~b&y,t[9]=S^~m&v,t[18]=T^~M&x,t[19]=R^~E&I,t[28]=H^~U&j,t[29]=K^~N&L,t[38]=Q^~V&W,t[39]=tt^~G&Y,t[48]=ft^~et&nt,t[49]=ct^~rt&it,t[0]^=u[n],t[1]^=u[n+1]};if(o)n.exports=b;else for(y=0;y>23,d=c>>21&3,l=c>>5&65535,p=31&c,b=e.mapStr.substr(l,p);if(0===d||n&&1&h)throw new Error("Illegal char "+f);1===d?o.push(b):2===d?o.push(i?b:f):3===d&&o.push(f)}return o.join("").normalize("NFC")}function n(e,n,o){void 0===o&&(o=!1);var a=r(e,o,n).split(".");return(a=a.map((function(e){return e.startsWith("xn--")?i(e=t.decode(e.substring(4)),o,!1):i(e,o,n),e}))).join(".")}function i(t,n,i){if("-"===t[2]&&"-"===t[3])throw new Error("Failed to validate "+t);if(t.startsWith("-")||t.endsWith("-"))throw new Error("Failed to validate "+t);if(t.includes("."))throw new Error("Failed to validate "+t);if(r(t,n,i)!==t)throw new Error("Failed to validate "+t);var o=t.codePointAt(0);if(e.mapChar(o)&2<<23)throw new Error("Label contains illegal character: "+o)}return{toUnicode:function(t,e){return void 0===e&&(e={}),n(t,!1,"useStd3ASCII"in e&&e.useStd3ASCII)},toAscii:function(e,r){void 0===r&&(r={});var i,o=!("transitional"in r)||r.transitional,a="useStd3ASCII"in r&&r.useStd3ASCII,s="verifyDnsLength"in r&&r.verifyDnsLength,u=n(e,o,a).split(".").map(t.toASCII),f=u.join(".");if(s){if(f.length<1||f.length>253)throw new Error("DNS name has wrong length: "+f);for(i=0;i63)throw new Error("DNS label has wrong length: "+c)}}return f}}}(t,e)}.apply(e,n))||(t.exports=i)},function(t,e,r){"use strict";var n;r(0)(r(1));void 0===(n=function(){return t=[new Uint32Array([2157250,2157314,2157378,2157442,2157506,2157570,2157634,0,2157698,2157762,2157826,2157890,2157954,0,2158018,0]),new Uint32Array([2179041,6291456,2179073,6291456,2179105,6291456,2179137,6291456,2179169,6291456,2179201,6291456,2179233,6291456,2179265,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,14680064,14680064,14680064,14680064,14680064]),new Uint32Array([0,2113729,2197345,2197377,2113825,2197409,2197441,2113921,2197473,2114017,2197505,2197537,2197569,2197601,2197633,2197665]),new Uint32Array([6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,23068672,23068672,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,0,23068672,23068672,23068672,0,0,0,0,23068672]),new Uint32Array([14680064,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,14680064,14680064]),new Uint32Array([2196001,2196033,2196065,2196097,2196129,2196161,2196193,2196225,2196257,2196289,2196321,2196353,2196385,2196417,2196449,2196481]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,6291456,0,0,0,0,0]),new Uint32Array([2097281,2105921,2097729,2106081,0,2097601,2162337,2106017,2133281,2097505,2105889,2097185,2097697,2135777,2097633,2097441]),new Uint32Array([2177025,6291456,2177057,6291456,2177089,6291456,2177121,6291456,2177153,6291456,2177185,6291456,2177217,6291456,2177249,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,0,6291456,6291456,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456]),new Uint32Array([0,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,6291456]),new Uint32Array([2134435,2134531,2134627,2134723,2134723,2134819,2134819,2134915,2134915,2135011,2105987,2135107,2135203,2135299,2131587,2135395]),new Uint32Array([0,0,0,0,0,0,0,6291456,2168673,2169249,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2147906,2147970,2148034,2148098,2148162,2148226,2148290,2148354,2147906,2147970,2148034,2148098,2148162,2148226,2148290,2148354]),new Uint32Array([2125219,2125315,2152834,2152898,2125411,2152962,2153026,2125506,2125507,2125603,2153090,2153154,2153218,2153282,2153346,2105348]),new Uint32Array([2203393,6291456,2203425,6291456,2203457,6291456,2203489,6291456,6291456,6291456,6291456,2203521,6291456,2181281,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,23068672,6291456,2145538,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,6291456]),new Uint32Array([2139426,2160834,2160898,2160962,2134242,2161026,2161090,2161154,2161218,2161282,2161346,2161410,2138658,2161474,2161538,2134722]),new Uint32Array([2119939,2124930,2125026,2106658,2125218,2128962,2129058,2129154,2129250,2129346,2129442,2108866,2108770,2150466,2150530,2150594]),new Uint32Array([2201601,6291456,2201633,6291456,2201665,6291456,2201697,6291456,2201729,6291456,2201761,6291456,2201793,6291456,2201825,6291456]),new Uint32Array([2193537,2193569,2193601,2193633,2193665,2193697,2193729,2193761,2193793,2193825,2193857,2193889,2193921,2193953,2193985,2194017]),new Uint32Array([6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2190561,6291456,2190593,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2190625,6291456,2190657,6291456,23068672]),new Uint32Array([2215905,2215937,2215969,2216001,2216033,2216065,2216097,2216129,2216161,2216193,2216225,2216257,2105441,2216289,2216321,2216353]),new Uint32Array([23068672,18884130,23068672,23068672,23068672,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2191233,2191265,2191297,2191329,2191361,2191393,2191425,2117377,2191457,2191489,2191521,2191553,2191585,2191617,2191649,2117953]),new Uint32Array([2132227,2132323,2132419,2132419,2132515,2132515,2132611,2132707,2132707,2132803,2132899,2132899,2132995,2132995,2133091,2133187]),new Uint32Array([0,0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,6291456,0,0]),new Uint32Array([2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,10609889,10610785,10609921,10610817,2222241]),new Uint32Array([6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,0,0]),new Uint32Array([2219969,2157121,2157441,2157505,2157889,2157953,2220001,2158465,2158529,10575617,2156994,2157058,2129923,2130019,2157122,2157186]),new Uint32Array([6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0]),new Uint32Array([2185249,6291456,2185281,6291456,2185313,6291456,2185345,6291456,2185377,6291456,2185409,6291456,2185441,6291456,2185473,6291456]),new Uint32Array([0,0,0,0,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,0,23068672,23068672,0,0,23068672,23068672,23068672,6291456,0]),new Uint32Array([2183361,6291456,2183393,6291456,2183425,6291456,2183457,6291456,2183489,6291456,2183521,6291456,2183553,6291456,2183585,6291456]),new Uint32Array([2192161,2192193,2192225,2192257,2192289,2192321,2192353,2192385,2192417,2192449,2192481,2192513,2192545,2192577,2192609,2192641]),new Uint32Array([2212001,2212033,2212065,2212097,2212129,2212161,2212193,2212225,2212257,2212289,2212321,2212353,2212385,2212417,2212449,2207265]),new Uint32Array([2249825,2249857,2249889,2249921,2249954,2250018,2250082,2250145,2250177,2250209,2250241,2250274,2250337,2250370,2250433,2250465]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2147905,2147969,2148033,2148097,2148161,2148225,2148289,2148353]),new Uint32Array([10485857,6291456,2197217,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,23068672,23068672]),new Uint32Array([0,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([2180353,2180385,2144033,2180417,2180449,2180481,2180513,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,10610209,10610465,10610241,10610753,10609857]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,0,0]),new Uint32Array([2223842,2223906,2223970,2224034,2224098,2224162,2224226,2224290,2224354,2224418,2224482,2224546,2224610,2224674,2224738,2224802]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,6291456,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456]),new Uint32Array([23068672,23068672,23068672,18923650,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,18923714,23068672,23068672]),new Uint32Array([2126179,2125538,2126275,2126371,2126467,2125634,2126563,2105603,2105604,2125346,2126659,2126755,2126851,2098179,2098181,2098182]),new Uint32Array([2227426,2227490,2227554,2227618,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2192353,2240642,2240642,2240705,2240737,2240737,2240769,2240802,2240866,2240929,2240961,2240993,2241025,2241057,2241089,2241121]),new Uint32Array([6291456,2170881,2170913,2170945,6291456,2170977,6291456,2171009,2171041,6291456,6291456,6291456,2171073,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2132226,2132514,2163586,2132610,2160386,2133090,2133186,2160450,2160514,2160578,2133570,2106178,2160642,2133858,2160706,2160770]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,10532162,10532226,10532290,10532354,10532418,10532482,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,23068672]),new Uint32Array([2098209,2108353,2108193,2108481,2170241,2111713,2105473,2105569,2105601,2112289,2112481,2098305,2108321,0,0,0]),new Uint32Array([2209121,2209153,2209185,2209217,2209249,2209281,2209313,2209345,2209377,2209409,2209441,2209473,2207265,2209505,2209537,2209569]),new Uint32Array([2189025,6291456,2189057,6291456,2189089,6291456,2189121,6291456,2189153,6291456,2189185,6291456,2189217,6291456,2189249,6291456]),new Uint32Array([2173825,2153473,2173857,2173889,2173921,2173953,2173985,2173761,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233057]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2165764,2140004]),new Uint32Array([2215105,6291456,2215137,6291456,6291456,2215169,2215201,6291456,6291456,6291456,2215233,2215265,2215297,2215329,2215361,2215393]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,6291456,6291456,6291456,23068672,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([10505091,10505187,10505283,10505379,10505475,10505571,10505667,10505763,10505859,10505955,10506051,10506147,10506243,10506339,10506435,10506531]),new Uint32Array([2229730,2229794,2229858,2229922,2229986,2230050,2230114,2230178,2230242,2230306,2230370,2230434,2230498,2230562,2230626,2230690]),new Uint32Array([2105505,2098241,2108353,2108417,2105825,0,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177]),new Uint32Array([6291456,6291456,6291456,6291456,10502115,10502178,10502211,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456]),new Uint32Array([2190305,6291456,2190337,6291456,2190369,6291456,2190401,6291456,2190433,6291456,2190465,6291456,2190497,6291456,2190529,6291456]),new Uint32Array([2173793,2173985,2174017,6291456,2173761,2173697,6291456,2174689,6291456,2174017,2174721,6291456,6291456,2174753,2174785,2174817]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2099521,2099105,2120705,2098369,2120801,2103361,2097985,2098433,2121377,2121473,2099169,2099873,2098401,2099393,2152609,2100033]),new Uint32Array([2132898,2163842,2163906,2133282,2132034,2131938,2137410,2132802,2132706,2164866,2133282,2160578,2165186,2165186,6291456,6291456]),new Uint32Array([10500003,10500099,10500195,10500291,10500387,10500483,10500579,10500675,10500771,10500867,10500963,10501059,10501155,10501251,10501347,10501443]),new Uint32Array([2163458,2130978,2131074,2131266,2131362,2163522,2160130,2132066,2131010,2131106,2106018,2131618,2131298,2132034,2131938,2137410]),new Uint32Array([2212961,2116993,2212993,2213025,2213057,2213089,2213121,2213153,2213185,2213217,2213249,2209633,2213281,2213313,2213345,2213377]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([2113729,2113825,2113921,2114017,2114113,2114209,2114305,2114401,2114497,2114593,2114689,2114785,2114881,2114977,2115073,2115169]),new Uint32Array([2238177,2238209,2238241,2238273,2238305,2238337,2238337,2217537,2238369,2238401,2238433,2238465,2215649,2238497,2238529,2238561]),new Uint32Array([2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905]),new Uint32Array([6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,0]),new Uint32Array([6291456,0,6291456,2145026,0,6291456,2145090,0,6291456,6291456,0,0,23068672,0,23068672,23068672]),new Uint32Array([2099233,2122017,2200673,2098113,2121537,2103201,2200705,2104033,2121857,2121953,2122401,2099649,2099969,2123009,2100129,2100289]),new Uint32Array([6291456,23068672,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,23068672,23068672,0,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0]),new Uint32Array([2187681,2187713,2187745,2187777,2187809,2187841,2187873,2187905,2187937,2187969,2188001,2188033,2188065,2188097,2188129,2188161]),new Uint32Array([0,10554498,10554562,10554626,10554690,10554754,10554818,10554882,10554946,10555010,10555074,6291456,6291456,0,0,0]),new Uint32Array([2235170,2235234,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0]),new Uint32Array([2181153,6291456,2188897,6291456,6291456,2188929,6291456,6291456,6291456,6291456,6291456,6291456,2111905,2100865,2188961,2188993]),new Uint32Array([2100833,2100897,0,0,2101569,2101697,2101825,2101953,2102081,2102209,10575617,2187041,10502177,10489601,10489697,2112289]),new Uint32Array([6291456,2172833,6291456,2172865,2172897,2172929,2172961,6291456,2172993,6291456,2173025,6291456,2173057,6291456,2173089,6291456]),new Uint32Array([6291456,0,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,0,0,23068672,6291456,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,2190721]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,23068672,6291456,6291456]),new Uint32Array([2184993,6291456,2185025,6291456,2185057,6291456,2185089,6291456,2185121,6291456,2185153,6291456,2185185,6291456,2185217,6291456]),new Uint32Array([2115265,2115361,2115457,2115553,2115649,2115745,2115841,2115937,2116033,2116129,2116225,2116321,2150658,2150722,2200225,6291456]),new Uint32Array([2168321,6291456,2168353,6291456,2168385,6291456,2168417,6291456,2168449,6291456,2168481,6291456,2168513,6291456,2168545,6291456]),new Uint32Array([23068672,23068672,23068672,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,0,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,0,6291456,0,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,2186625,0,0,6291456,6291456,2186657,2186689,2186721,2173505,0,10496067,10496163,10496259]),new Uint32Array([2178785,6291456,2178817,6291456,2178849,6291456,2178881,6291456,2178913,6291456,2178945,6291456,2178977,6291456,2179009,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0]),new Uint32Array([2097152,0,0,0,2097152,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,2197857,2197889,2197921,2197953,2197985,2198017,0,0,2198049,2198081,2198113,2198145,2198177,2198209]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2098209,2167297,2111137,6291456]),new Uint32Array([2171393,6291456,2171425,6291456,2171457,6291456,2171489,6291456,2171521,6291456,2171553,6291456,2171585,6291456,2171617,6291456]),new Uint32Array([2206753,2206785,2195457,2206817,2206849,2206881,2206913,2197153,2197153,2206945,2117857,2206977,2207009,2207041,2207073,2207105]),new Uint32Array([0,0,0,0,0,0,0,23068672,0,0,0,0,2144834,2144898,0,2144962]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,23068672]),new Uint32Array([2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,0,2105505,2098241]),new Uint32Array([6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,2202049,6291456,2202081,6291456,2202113,6291456,2202145,6291456,2202177,6291456,2202209,6291456,2202241,6291456]),new Uint32Array([10501155,10501251,10501347,10501443,10501539,10501635,10501731,10501827,10501923,10502019,2141731,2105505,2098177,2155586,2166530,0]),new Uint32Array([2102081,2102209,2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,2100833,2100737,2098337,2101441]),new Uint32Array([2146882,2146946,2147010,2147074,2147138,2147202,2147266,2147330,2146882,2146946,2147010,2147074,2147138,2147202,2147266,2147330]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([10502307,10502403,10502499,10502595,10502691,10502787,10502883,10502979,10503075,10503171,10503267,10503363,10503459,10503555,10503651,10503747]),new Uint32Array([2179937,2179969,2180001,2180033,2156545,2180065,2156577,2180097,2180129,2180161,2180193,2180225,2180257,2180289,2156737,2180321]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,0,0,0,6291456,0,0,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0]),new Uint32Array([2227682,2227746,2227810,2227874,2227938,2228002,2228066,2228130,2228194,2228258,2228322,2228386,2228450,2228514,2228578,2228642]),new Uint32Array([2105601,2169121,2108193,2170049,2181025,2181057,2112481,2108321,2108289,2181089,2170497,2100865,2181121,2173601,2173633,2173665]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2180641,6291456,6291456,6291456]),new Uint32Array([0,6291456,6291456,6291456,0,6291456,0,6291456,0,0,6291456,6291456,0,6291456,6291456,6291456]),new Uint32Array([2178273,6291456,2178305,6291456,2178337,6291456,2178369,6291456,2178401,6291456,2178433,6291456,2178465,6291456,2178497,6291456]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,6291456,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,14680064,14680064,14680064,14680064,14680064,14680064]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456]),new Uint32Array([2237377,2237409,2236225,2237441,2237473,2217441,2215521,2215553,2217473,2237505,2237537,2209697,2237569,2215585,2237601,2237633]),new Uint32Array([2221985,2165601,2165601,2165665,2165665,2222017,2222017,2165729,2165729,2158913,2158913,2158913,2158913,2097281,2097281,2105921]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2149634,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2176897,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,2176929,6291456,2176961,6291456,2176993,6291456]),new Uint32Array([2172641,6291456,2172673,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2172705,2172737,6291456,2172769,2172801,6291456]),new Uint32Array([2099173,2104196,2121667,2099395,2121763,2152258,2152322,2098946,2152386,2121859,2121955,2099333,2122051,2104324,2099493,2122147]),new Uint32Array([6291456,6291456,6291456,2145794,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,2145858,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,0,0,6291456,0]),new Uint32Array([0,2105921,2097729,0,2097377,0,0,2106017,0,2097505,2105889,2097185,2097697,2135777,2097633,2097441]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2239074,2239138,2239201,2239233,2239265,2239297,2239329,2239361,0,2239393,2239425,2239425,2239458,2239521,2239553,2209569]),new Uint32Array([14680064,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,6291456,23068672]),new Uint32Array([2108321,2108289,2113153,2098209,2180897,2180929,2180961,2111137,2098241,2108353,2170241,2170273,2180993,2105825,6291456,2105473]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2146114,6291456,6291456,6291456,0,0,0]),new Uint32Array([2105921,2105921,2105921,2222049,2222049,2130977,2130977,2130977,2130977,2160065,2160065,2160065,2160065,2097729,2097729,2097729]),new Uint32Array([2218145,2214785,2207937,2218177,2218209,2192993,2210113,2212769,2218241,2218273,2216129,2218305,2216161,2218337,2218369,2218401]),new Uint32Array([0,0,0,2156546,2156610,2156674,2156738,2156802,0,0,0,0,0,2156866,23068672,2156930]),new Uint32Array([23068672,23068672,23068672,0,0,0,0,23068672,23068672,0,0,23068672,23068672,23068672,0,0]),new Uint32Array([2213409,2213441,2213473,2213505,2213537,2213569,2213601,2213633,2213665,2195681,2213697,2213729,2213761,2213793,2213825,2213857]),new Uint32Array([2100033,2099233,2122017,2200673,2098113,2121537,2103201,2200705,2104033,2121857,2121953,2122401,2099649,2099969,2123009,2100129]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0]),new Uint32Array([2201857,6291456,2201889,6291456,2201921,6291456,2201953,6291456,2201985,6291456,2202017,6291456,2176193,2176257,23068672,23068672]),new Uint32Array([6291456,6291456,23068672,23068672,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2188193,2188225,2188257,2188289,2188321,2188353,2188385,2188417,2188449,2188481,2188513,2188545,2188577,2188609,2188641,0]),new Uint32Array([10554529,2221089,0,10502113,10562017,10537921,10538049,2221121,2221153,0,0,0,0,0,0,0]),new Uint32Array([2213889,2213921,2213953,2213985,2214017,2214049,2214081,2194177,2214113,2214145,2214177,2214209,2214241,2214273,2214305,2214337]),new Uint32Array([2166978,2167042,2099169,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2180545,6291456,6291456,6291456]),new Uint32Array([10518915,10519011,10519107,10519203,2162242,2162306,2159554,2162370,2159362,2159618,2105922,2162434,2159746,2162498,2159810,2159874]),new Uint32Array([2161730,2161794,2135586,2161858,2161922,2137186,2131810,2160290,2135170,2161986,2137954,2162050,2162114,2162178,10518723,10518819]),new Uint32Array([10506627,10506723,10506819,10506915,10507011,10507107,10507203,10507299,10507395,10507491,10507587,10507683,10507779,10507875,10507971,10508067]),new Uint32Array([6291456,23068672,23068672,23068672,0,23068672,23068672,0,0,0,0,0,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0]),new Uint32Array([2175873,2175905,2175937,2175969,2176001,2176033,2176065,2176097,2176129,2176161,2176193,2176225,2176257,2176289,2176321,2176353]),new Uint32Array([2140006,2140198,2140390,2140582,2140774,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,23068672,23068672,23068672]),new Uint32Array([2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241]),new Uint32Array([0,23068672,0,0,0,0,0,0,0,2145154,2145218,2145282,6291456,0,2145346,0]),new Uint32Array([0,0,0,0,10531458,10495395,2148545,2143201,2173473,2148865,2173505,0,2173537,0,2173569,2149121]),new Uint32Array([10537282,10495683,2148738,2148802,2148866,0,6291456,2148930,2186593,2173473,2148737,2148865,2148802,10495779,10495875,10495971]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2215425,2215457,2215489,2215521,2215553,2215585,2215617,2215649,2215681,2215713,2215745,2215777,2192033,2215809,2215841,2215873]),new Uint32Array([2242049,2242081,2242113,2242145,2242177,2242209,2242241,2242273,2215937,2242305,2242338,2242401,2242433,2242465,2242497,2216001]),new Uint32Array([10554529,2221089,0,0,10562017,10502113,10538049,10537921,2221185,10489601,10489697,10609889,10609921,2141729,2141793,10610273]),new Uint32Array([2141923,2142019,2142115,2142211,2142307,2142403,2142499,2142595,2142691,0,0,0,0,0,0,0]),new Uint32Array([0,2221185,2221217,10609857,10609857,10489601,10489697,10609889,10609921,2141729,2141793,2221345,2221377,2221409,2221441,2187105]),new Uint32Array([6291456,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,18923970,23068672,23068672,23068672,0,6291456,6291456]),new Uint32Array([2183105,6291456,2183137,6291456,2183169,6291456,2183201,6291456,2183233,6291456,2183265,6291456,2183297,6291456,2183329,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456]),new Uint32Array([2134434,2134818,2097666,2097186,2097474,2097698,2105986,2131586,2132450,2131874,2131778,2135970,2135778,2161602,2136162,2161666]),new Uint32Array([2236865,2236897,2236930,2236993,2237025,2235681,2237058,2237121,2237153,2237185,2237217,2217281,2237250,2191233,2237313,2237345]),new Uint32Array([2190049,6291456,2190081,6291456,2190113,6291456,2190145,6291456,2190177,6291456,2190209,6291456,2190241,6291456,2190273,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2101922,2102050,2102178,2102306,10498755,10498851,10498947,10499043,10499139,10499235,10499331,10499427,10499523,10489604,10489732,10489860]),new Uint32Array([2166914,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0]),new Uint32Array([2181601,2170561,2181633,2181665,2170753,2181697,2172897,2170881,2181729,2170913,2172929,2113441,2181761,2181793,2171009,2173761]),new Uint32Array([0,2105921,2097729,2106081,0,2097601,2162337,2106017,2133281,2097505,0,2097185,2097697,2135777,2097633,2097441]),new Uint32Array([6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,0,0,0,0]),new Uint32Array([2248001,2248033,2248066,2248130,2248193,2248226,2248289,2248322,2248385,2248417,2216673,2248450,2248514,2248577,2248610,2248673]),new Uint32Array([6291456,6291456,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,0,0,0]),new Uint32Array([2169729,6291456,2169761,6291456,2169793,6291456,2169825,6291456,2169857,2169889,6291456,2169921,6291456,2143329,6291456,2098305]),new Uint32Array([2162178,2163202,2163266,2135170,2136226,2161986,2137954,2159426,2159490,2163330,2159554,2163394,2159682,2139522,2136450,2159746]),new Uint32Array([2173953,2173985,0,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2174209,2174241,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,4271169,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2174273]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,0,0,0,0,0,0,0,6291456,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,2190785,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2189793,6291456,2189825,6291456,2189857,6291456,2189889,6291456,2189921,6291456,2189953,6291456,2189985,6291456,2190017,6291456]),new Uint32Array([2105601,2112289,2108193,2112481,2112577,0,2098305,2108321,2108289,2100865,2113153,2108481,2113345,0,2098209,2111137]),new Uint32Array([2172129,6291456,2172161,6291456,2172193,6291456,2172225,6291456,2172257,6291456,2172289,6291456,2172321,6291456,2172353,6291456]),new Uint32Array([2214753,6291456,2214785,6291456,6291456,2214817,2214849,2214881,2214913,2214945,2214977,2215009,2215041,2215073,2194401,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,6291456,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([0,0,0,0,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([10610305,10610337,10575617,2221761,10610401,10610433,10502177,0,10610465,10610497,10610529,10610561,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,23068672,0,0,0,0,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2187105,2187137,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2199393,2199425,2199457,2199489,2199521,2199553,2199585,2199617,2199649,2199681,2199713,2199745,2199777,2199809,2199841,0]),new Uint32Array([2217249,2217281,2217313,2217345,2217377,2217409,2217441,2217473,2215617,2217505,2217537,2217569,2214753,2217601,2217633,2217665]),new Uint32Array([2170273,2170305,6291456,2170337,2170369,6291456,2170401,2170433,2170465,6291456,6291456,6291456,2170497,2170529,6291456,2170561]),new Uint32Array([2188673,6291456,2188705,2188737,2188769,6291456,6291456,2188801,6291456,2188833,6291456,2188865,6291456,2180929,2181505,2180897]),new Uint32Array([10489988,10490116,10490244,10490372,10490500,10490628,10490756,10490884,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2147393,2147457,2147521,2147585,2147649,2147713,2147777,2147841]),new Uint32Array([23068672,23068672,0,23068672,23068672,0,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0]),new Uint32Array([2241153,2241185,2241217,2215809,2241250,2241313,2241345,2241377,2217921,2241377,2241409,2215873,2241441,2241473,2241505,2241537]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2220417,2220417,2220449,2220449,2220481,2220481,2220513,2220513,2220545,2220545,2220577,2220577,2220609,2220609,2220641,2220641]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,2144002,0,6291456,6291456,0,0,6291456,6291456,6291456]),new Uint32Array([2167105,2167137,2167169,2167201,2167233,2167265,2167297,2167329,2167361,2167393,2167425,2167457,2167489,2167521,2167553,2167585]),new Uint32Array([10575521,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193]),new Uint32Array([2234146,2234210,2234274,2234338,2234402,2234466,2234530,2234594,2234658,2234722,2234786,2234850,2234914,2234978,2235042,2235106]),new Uint32Array([0,0,0,0,0,0,0,2180577,0,0,0,0,0,2180609,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,0,0,6291456,6291456]),new Uint32Array([2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2242529,2242561,2242593,2242625,2242657,2242689,2242721,2242753,2207937,2218177,2242785,2242817,2242849,2242882,2242945,2242977]),new Uint32Array([2118049,2105345,2118241,2105441,2118433,2118529,2118625,2118721,2118817,2200257,2200289,2191809,2200321,2200353,2200385,2200417]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0]),new Uint32Array([2185505,6291456,2185537,6291456,2185569,6291456,2185601,6291456,2185633,6291456,2185665,6291456,2185697,6291456,2185729,6291456]),new Uint32Array([2231970,2232034,2232098,2232162,2232226,2232290,2232354,2232418,2232482,2232546,2232610,2232674,2232738,2232802,2232866,2232930]),new Uint32Array([2218625,2246402,2246466,2246530,2246594,2246657,2246689,2246689,2218657,2219681,2246721,2246753,2246785,2246818,2246881,2208481]),new Uint32Array([2197025,2197057,2197089,2197121,2197153,2197185,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2219137,2216961,2219169,2219201,2219233,2219265,2219297,2217025,2215041,2219329,2217057,2219361,2217089,2219393,2197153,2219426]),new Uint32Array([23068672,23068672,23068672,0,0,0,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,0,0]),new Uint32Array([2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713]),new Uint32Array([2243522,2243585,2243617,2243649,2243681,2210113,2243713,2243746,2243810,2243874,2243937,2243970,2244033,2244065,2244097,2244129]),new Uint32Array([2178017,6291456,2178049,6291456,2178081,6291456,2178113,6291456,2178145,6291456,2178177,6291456,2178209,6291456,2178241,6291456]),new Uint32Array([10553858,2165314,10518722,6291456,10518818,0,10518914,2130690,10519010,2130786,10519106,2130882,10519202,2165378,10554050,2165506]),new Uint32Array([0,0,2135491,2135587,2135683,2135779,2135875,2135971,2135971,2136067,2136163,2136259,2136355,2136355,2136451,2136547]),new Uint32Array([23068672,23068672,23068672,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2220033,2220033,2220065,2220065,2220065,2220065,2220097,2220097,2220097,2220097,2220129,2220129,2220129,2220129,2220161,2220161]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,23068672,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2100897,2100898,2100899,2150018,2100865,2100866,2100867,2100868,2150082,2108481,2109858,2109859,2105569,2105505,2098241,2105601]),new Uint32Array([2097217,2097505,2097505,2097505,2097505,2165570,2165570,2165634,2165634,2165698,2165698,2097858,2097858,0,0,2097152]),new Uint32Array([23068672,6291456,23068672,23068672,23068672,6291456,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,23068672,23068672]),new Uint32Array([23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([10503843,10503939,10504035,10504131,10504227,10504323,10504419,10504515,10504611,10504707,10504803,10504899,10504995,10491140,10491268,0]),new Uint32Array([2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953,2173985,2173761,2174017,2174049]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2134145,2097153,2134241,2105953,2132705,2130977,2160065,2131297,2162049,2133089,2160577,2133857,2235297,2220769,2235329,2235361]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2222401,2222433,2222465,10531394,2222497,2222529,2222561,0,2222593,2222625,2222657,2222689,2222721,2222753,2222785,0]),new Uint32Array([2184481,6291456,2184513,6291456,2184545,6291456,2184577,6291456,2184609,6291456,2184641,6291456,2184673,6291456,2184705,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,0,0,0,0,0,0,0,0,0]),new Uint32Array([2105570,2156034,2126947,2156098,2153666,2127043,2127139,2156162,0,2127235,2156226,2156290,2156354,2156418,2127331,2127427]),new Uint32Array([2215905,2207041,2153185,2241569,2241601,2241633,2241665,2241697,2241730,2241793,2241825,2241857,2241889,2241921,2241954,2242017]),new Uint32Array([2203777,6291456,2203809,6291456,2203841,6291456,2203873,6291456,2203905,6291456,2173121,2180993,2181249,2203937,2181313,0]),new Uint32Array([2168577,6291456,2168609,6291456,2168641,6291456,2168673,6291456,2168705,6291456,2168737,6291456,2168769,6291456,2168801,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,23068672,23068672,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,0,23068672,23068672,23068672,0,0]),new Uint32Array([2210113,2195521,2210145,2210177,2210209,2210241,2210273,2210305,2210337,2210369,2210401,2210433,2210465,2210497,2210529,2210561]),new Uint32Array([6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([2228706,2228770,2228834,2228898,2228962,2229026,2229090,2229154,2229218,2229282,2229346,2229410,2229474,2229538,2229602,2229666]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,18874368,18874368,18874368,0,0]),new Uint32Array([2133089,2133281,2133281,2133281,2133281,2160577,2160577,2160577,2160577,2097441,2097441,2097441,2097441,2133857,2133857,2133857]),new Uint32Array([6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2173825,2153473,2173857,2173889,2173921,2173953,2173985,2174017,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233089]),new Uint32Array([2178529,6291456,2178561,6291456,2178593,6291456,2178625,6291456,2178657,6291456,2178689,6291456,2178721,6291456,2178753,6291456]),new Uint32Array([2221025,2221025,2221057,2221057,2159329,2159329,2159329,2159329,2097217,2097217,2158914,2158914,2158978,2158978,2159042,2159042]),new Uint32Array([2208161,2208193,2208225,2208257,2194433,2208289,2208321,2208353,2208385,2208417,2208449,2208481,2208513,2208545,2208577,2208609]),new Uint32Array([2169217,6291456,2169249,6291456,2169281,6291456,2169313,6291456,2169345,6291456,2169377,6291456,2169409,6291456,2169441,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456]),new Uint32Array([2133187,2133283,2133283,2133379,2133475,2133571,2133667,2133667,2133763,2133859,2133955,2134051,2134147,2134147,2134243,2134339]),new Uint32Array([2197697,2114113,2114209,2197729,2197761,2114305,2197793,2114401,2114497,2197825,2114593,2114689,2114785,2114881,2114977,0]),new Uint32Array([2193089,2193121,2193153,2193185,2117665,2117569,2193217,2193249,2193281,2193313,2193345,2193377,2193409,2193441,2193473,2193505]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2184225,6291456,2184257,6291456,2184289,6291456,2184321,6291456,2184353,6291456,2184385,6291456,2184417,6291456,2184449,6291456]),new Uint32Array([2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2100833,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2098657,2098049,2200737,2123489,2123681,2200769,2098625,2100321,2098145,2100449,2098017,2098753,2200801,2200833,2200865,0]),new Uint32Array([23068672,23068672,23068672,0,0,0,0,0,0,0,0,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0]),new Uint32Array([2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,0,2098241,2108353,2108417,2105825,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2181153,2105505,2181185,2167617,2180993]),new Uint32Array([2160002,2160066,2160130,2160194,2160258,2132066,2131010,2131106,2106018,2131618,2160322,2131298,2132034,2131938,2137410,2132226]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,6291456]),new Uint32Array([2183617,6291456,2183649,6291456,2183681,6291456,2183713,6291456,2183745,6291456,2183777,6291456,2183809,6291456,2183841,6291456]),new Uint32Array([0,6291456,6291456,0,6291456,0,0,6291456,6291456,0,6291456,0,0,6291456,0,0]),new Uint32Array([2250977,2251009,2251041,2251073,2195009,2251106,2251169,2251201,2251233,2251265,2251297,2251330,2251394,2251457,2251489,2251521]),new Uint32Array([2205729,2205761,2205793,2205825,2205857,2205889,2205921,2205953,2205985,2206017,2206049,2206081,2206113,2206145,2206177,2206209]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2143170,2168993,6291456,2169025,6291456,2169057,6291456,2169089,6291456,2143234,2169121,6291456,2169153,6291456,2169185,6291456]),new Uint32Array([23068672,23068672,2190689,6291456,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2248706,2248769,2248801,2248833,2248865,2248897,2248929,2248962,2249026,2249090,2249154,2240705,2249217,2249249,2249281,2249313]),new Uint32Array([10485857,6291456,6291456,6291456,6291456,6291456,6291456,6291456,10495394,6291456,2098209,6291456,6291456,2097152,6291456,10531394]),new Uint32Array([0,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([14680064,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2173985,2173953,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889]),new Uint32Array([6291456,2186977,6291456,6291456,6291456,6291456,6291456,10537858,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2209601,2209633,2209665,2209697,2209729,2209761,2209793,2209825,2209857,2209889,2209921,2209953,2209985,2210017,2210049,2210081]),new Uint32Array([10501539,10501635,10501731,10501827,10501923,10502019,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905]),new Uint32Array([2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953,2173985,2174017,2174017,2174049]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2194561,2194593,2194625,2119777,2119873,2194657,2194689,2194721,2194753,2194785,2194817,2194849,2194881,2194913,2194945,2194977]),new Uint32Array([2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569]),new Uint32Array([2222818,2222882,2222946,2223010,2223074,2223138,2223202,2223266,2223330,2223394,2223458,2223522,2223586,2223650,2223714,2223778]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672]),new Uint32Array([0,2179553,2179585,2179617,2179649,2144001,2179681,2179713,2179745,2179777,2179809,2156705,2179841,2156833,2179873,2179905]),new Uint32Array([6291456,23068672,6291456,2145602,23068672,23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,6291456,0,0]),new Uint32Array([2196513,2196545,2196577,2196609,2196641,2196673,2196705,2196737,2196769,2196801,2196833,2196865,2196897,2196929,2196961,2196993]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2177281,6291456,2177313,6291456,2177345,6291456,2177377,6291456,2177409,6291456,2177441,6291456,2177473,6291456,2177505,6291456]),new Uint32Array([2187137,2221473,2221505,2221537,2221569,6291456,6291456,10610209,10610241,10537986,10537986,10537986,10537986,10609857,10609857,10609857]),new Uint32Array([2243009,2243041,2216033,2243074,2243137,2243169,2243201,2219617,2243233,2243265,2243297,2243329,2243362,2243425,2243457,2243489]),new Uint32Array([10485857,10485857,10485857,10485857,10485857,10485857,10485857,10485857,10485857,10485857,10485857,2097152,4194304,4194304,0,0]),new Uint32Array([2143042,6291456,2143106,2143106,2168833,6291456,2168865,6291456,6291456,2168897,6291456,2168929,6291456,2168961,6291456,2143170]),new Uint32Array([6291456,6291456,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2204193,2204225,2204257,2204289,2204321,2204353,2204385,2204417,2204449,2204481,2204513,2204545,2204577,2204609,2204641,2204673]),new Uint32Array([2202753,6291456,2202785,6291456,2202817,6291456,2202849,6291456,2202881,6291456,2202913,6291456,2202945,6291456,2202977,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321]),new Uint32Array([2147394,2147458,2147522,2147586,2147650,2147714,2147778,2147842,2147394,2147458,2147522,2147586,2147650,2147714,2147778,2147842]),new Uint32Array([2253313,2253346,2253409,2253441,2253473,2253505,2253537,2253569,2253601,2253634,2219393,2253697,2253729,2253761,2253793,2253825]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([2162562,2162626,2131362,2162690,2159938,2160002,2162754,2162818,2160130,2162882,2160194,2160258,2160834,2160898,2161026,2161090]),new Uint32Array([2175361,2175393,2175425,2175457,2175489,2175521,2175553,2175585,2175617,2175649,2175681,2175713,2175745,2175777,2175809,2175841]),new Uint32Array([2253858,2253921,2253954,2254018,2254082,2196737,2254145,2196865,2254177,2254209,2254241,2254273,2197025,2254306,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2202113,2204129,2188705,2204161]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([2173985,2174017,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233089,2173697,2173761,2173793,2174113,2173985,2173953]),new Uint32Array([2101569,2101697,2101825,2101953,2102081,2102209,2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209]),new Uint32Array([2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,0,2108417,0,2111713,2100897,2111905]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0]),new Uint32Array([2175425,2175489,2175809,2175905,2175937,2175937,2176193,2176417,2180865,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,2143298,2143298,2143298,2143362,2143362,2143362,2143426,2143426,2143426,2171105,6291456,2171137]),new Uint32Array([2120162,2120258,2151618,2151682,2151746,2151810,2151874,2151938,2152002,2120035,2120131,2120227,2152066,2120323,2152130,2120419]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2195361,2142433,2236065,2236097,2236129,2236161,2118241,2117473,2236193,2236225,2236257,2236289,0,0,0,0]),new Uint32Array([2189281,6291456,2189313,6291456,2189345,6291456,2189377,6291456,2189409,6291456,2189441,6291456,2189473,6291456,2189505,6291456]),new Uint32Array([6291456,6291456,2145922,6291456,6291456,6291456,6291456,2145986,6291456,6291456,6291456,6291456,2146050,6291456,6291456,6291456]),new Uint32Array([2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,10502113,10562017,10610401,10502177,10610433,10538049]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,2186401,0,2186433,0,2186465,0,2186497]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,23068672,23068672,23068672]),new Uint32Array([0,0,2198241,2198273,2198305,2198337,2198369,2198401,0,0,2198433,2198465,2198497,0,0,0]),new Uint32Array([6291456,0,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,0,6291456,0,23068672,23068672,23068672,23068672,23068672,23068672,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,0,0,23068672,6291456,23068672,23068672]),new Uint32Array([0,2105921,2097729,0,2097377,0,0,2106017,2133281,2097505,2105889,0,2097697,2135777,2097633,2097441]),new Uint32Array([2197889,2197921,2197953,2197985,2198017,2198049,2198081,2198113,2198145,2198177,2198209,2198241,2198273,2198305,2198337,2198369]),new Uint32Array([2132514,2132610,2160386,2133090,2133186,2160450,2160514,2133282,2160578,2133570,2106178,2160642,2133858,2160706,2160770,2134146]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,0,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,23068672,23068672,6291456,23068672,23068672,6291456,23068672,0,0,0,0,0,0,0,0]),new Uint32Array([2184737,6291456,2184769,6291456,2184801,6291456,2184833,6291456,2184865,6291456,2184897,6291456,2184929,6291456,2184961,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,6291456,6291456,6291456,6291456,0,6291456]),new Uint32Array([6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,23068672,23068672,23068672,6291456,23068672,23068672,23068672,23068672,23068672,0,0]),new Uint32Array([6291456,6291456,6291456,2186753,6291456,6291456,6291456,6291456,2186785,2186817,2186849,2173569,2186881,10496355,10495395,10575521]),new Uint32Array([0,0,2097729,0,0,0,0,2106017,0,2097505,0,2097185,0,2135777,2097633,2097441]),new Uint32Array([2189537,6291456,2189569,6291456,2189601,6291456,2189633,6291456,2189665,6291456,2189697,6291456,2189729,6291456,2189761,6291456]),new Uint32Array([2202497,6291456,2202529,6291456,2202561,6291456,2202593,6291456,2202625,6291456,2202657,6291456,2202689,6291456,2202721,6291456]),new Uint32Array([2245217,2218369,2245249,2245282,2245345,2245377,2245410,2245474,2245537,2245569,2245601,2245633,2245665,2245665,2245697,2245729]),new Uint32Array([6291456,0,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,0,0,0,0,0,0,23068672,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,6291456,23068672,6291456,23068672,6291456,6291456,6291456,6291456,23068672,23068672]),new Uint32Array([0,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0]),new Uint32Array([2097281,2105921,2097729,2106081,2097377,2097601,2162337,2106017,2133281,2097505,0,2097185,2097697,2135777,2097633,2097441]),new Uint32Array([2176641,6291456,2176673,6291456,2176705,6291456,2176737,6291456,2176769,6291456,2176801,6291456,2176833,6291456,2176865,6291456]),new Uint32Array([2174145,2174177,2149057,2233089,2173697,2173761,2173793,2174113,2173985,2173953,2174369,2174369,0,0,2100833,2100737]),new Uint32Array([2116513,2190817,2190849,2190881,2190913,2190945,2116609,2190977,2191009,2191041,2191073,2117185,2191105,2191137,2191169,2191201]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,6291456,6291456,6291456]),new Uint32Array([0,0,0,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456]),new Uint32Array([2167617,2167649,2167681,2167713,2167745,2167777,2167809,6291456,2167841,2167873,2167905,2167937,2167969,2168001,2168033,4240130]),new Uint32Array([2165122,2163970,2164034,2164098,2164162,2164226,2164290,2164354,2164418,2164482,2164546,2133122,2134562,2132162,2132834,2136866]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,2186209,2186241,2186273,2186305,2186337,2186369,0,0]),new Uint32Array([2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,14680064,14680064,14680064,14680064,14680064]),new Uint32Array([0,0,23068672,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456]),new Uint32Array([0,10537921,10610689,10610273,10610497,10610529,10610305,10610721,10489601,10489697,10610337,10575617,10554529,2221761,2197217,10496577]),new Uint32Array([2105473,2105569,2105601,2112289,0,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441]),new Uint32Array([2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481]),new Uint32Array([2125346,2153410,2153474,2127394,2153538,2153602,2153666,2153730,2105507,2105476,2153794,2153858,2153922,2153986,2154050,2105794]),new Uint32Array([2200449,2119681,2200481,2153313,2199873,2199905,2199937,2200513,2200545,2200577,2200609,2119105,2119201,2119297,2119393,2119489]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2175777,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2222273,2197217,2221473,2221505,2221089,2222305,2200865,2099681,2104481,2222337,2099905,2120737,2222369,2103713,2100225,2098785]),new Uint32Array([2201377,6291456,2201409,6291456,2201441,6291456,2201473,6291456,2201505,6291456,2201537,6291456,2201569,6291456,6291456,23068672]),new Uint32Array([2174081,2174113,2174145,2174177,2149057,2233057,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793]),new Uint32Array([2200897,6291456,2200929,6291456,2200961,6291456,2200993,6291456,2201025,6291456,2180865,6291456,2201057,6291456,2201089,6291456]),new Uint32Array([0,0,0,0,0,23068672,23068672,0,6291456,6291456,6291456,0,0,0,0,0]),new Uint32Array([2161154,2161410,2138658,2161474,2161538,2097666,2097186,2097474,2162946,2132450,2163010,2163074,2136162,2163138,2161666,2161730]),new Uint32Array([2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953]),new Uint32Array([0,0,0,0,0,0,23068672,23068672,0,0,0,0,2145410,2145474,0,6291456]),new Uint32Array([2244161,2216065,2212769,2244193,2244225,2244257,2244290,2244353,2244385,2244417,2244449,2218273,2244481,2244514,2244577,2244609]),new Uint32Array([2125730,2125699,2125795,2125891,2125987,2154114,2154178,2154242,2154306,2154370,2154434,2154498,2126082,2126178,2126274,2126083]),new Uint32Array([2237665,2237697,2237697,2237697,2237730,2237793,2237825,2237857,2237890,2237953,2237985,2238017,2238049,2238081,2238113,2238145]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2150146,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,0,23068672,23068672,0,0,23068672,23068672,23068672,0,0]),new Uint32Array([2214369,2238593,2238625,2238657,2238689,2238721,2238753,2238785,2238817,2238850,2238913,2238945,2238977,2235457,2239009,2239041]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([2252066,2252130,2252193,2252225,2252257,2252290,2252353,2252385,2252417,2252449,2252481,2252513,2252545,2252578,2252641,2252673]),new Uint32Array([2197697,2114113,2114209,2197729,2197761,2114305,2197793,2114401,2114497,2197825,2114593,2114689,2114785,2114881,2114977,2197857]),new Uint32Array([2224866,2224930,2224994,2225058,2225122,2225186,2225250,2225314,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2219490,2219554,2219617,2219649,2219681,2219714,2219778,2219842,2219905,2219937,0,0,0,0,0,0]),new Uint32Array([6291456,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456]),new Uint32Array([2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289]),new Uint32Array([2174081,2174113,2174145,2174177,2149057,2233089,2173697,2173761,2173793,2174113,2173985,2173953,2148481,2173601,2173633,2173665]),new Uint32Array([2220161,2220161,2220193,2220193,2220193,2220193,2220225,2220225,2220225,2220225,2220257,2220257,2220257,2220257,2220289,2220289]),new Uint32Array([2192673,2192705,2192737,2192769,2192801,2192833,2192865,2118049,2192897,2117473,2117761,2192929,2192961,2192993,2193025,2193057]),new Uint32Array([2179297,6291456,2179329,6291456,2179361,6291456,2179393,6291456,2179425,6291456,2179457,6291456,2179489,6291456,2179521,6291456]),new Uint32Array([6291456,6291456,6291456,23068672,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0]),new Uint32Array([2235745,2235777,2193633,2235809,2235841,2235873,2235905,2235937,2235969,2116513,2116705,2236001,2200513,2199905,2200545,2236033]),new Uint32Array([2113153,2108481,2113345,2113441,2232993,2233025,0,0,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761]),new Uint32Array([2170593,6291456,2170625,6291456,2170657,6291456,2170689,2170721,6291456,2170753,6291456,6291456,2170785,6291456,2170817,2170849]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2166786,2166850,0,0,0,0]),new Uint32Array([23068672,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,10575617,2187041,10502177,10489601,10489697,0]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2134562,2132162,2132834,2136866,2136482,2164610,2164674,2164738,2164802,2132802,2132706,2164866,2132898,2164930,2164994,2165058]),new Uint32Array([6291456,6291456,2098337,2101441,10531458,2153473,6291456,6291456,10531522,2100737,2108193,6291456,2106499,2106595,2106691,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,0]),new Uint32Array([2233122,2233186,2233250,2233314,2233378,2233442,2233506,2233570,2233634,2233698,2233762,2233826,2233890,2233954,2234018,2234082]),new Uint32Array([23068672,6291456,23068672,23068672,23068672,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2205217,2205249,2205281,2205313,2205345,2205377,2205409,2205441,2205473,2205505,2205537,2205569,2205601,2205633,2205665,2205697]),new Uint32Array([6291456,0,6291456,0,0,0,6291456,6291456,6291456,6291456,0,0,23068672,6291456,23068672,23068672]),new Uint32Array([2173601,2173761,2174081,2173569,2174241,2174113,2173953,6291456,2174305,6291456,2174337,6291456,2174369,6291456,2174401,6291456]),new Uint32Array([6291456,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([2152450,2152514,2099653,2104452,2099813,2122243,2099973,2152578,2122339,2122435,2122531,2122627,2122723,2104580,2122819,2152642]),new Uint32Array([2236385,2236417,2236449,2236482,2236545,2215425,2236577,2236609,2236641,2236673,2215457,2236705,2236737,2236770,2215489,2236833]),new Uint32Array([2163394,2159746,2163458,2131362,2163522,2160130,2163778,2132226,2163842,2132898,2163906,2161410,2138658,2097666,2136162,2163650]),new Uint32Array([2218721,2246913,2246946,2216385,2247010,2247074,2215009,2247137,2247169,2216481,2247201,2247233,2247266,2247330,2247330,0]),new Uint32Array([2129730,2129762,2129858,2129731,2129827,2156482,2156482,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,0,0,0,0,6291456,0,0]),new Uint32Array([2203969,2204001,2181377,2204033,2204065,6291456,2204097,6291456,0,0,0,0,0,0,0,0]),new Uint32Array([2169473,6291456,2169505,6291456,2169537,6291456,2169569,6291456,2169601,6291456,2169633,6291456,2169665,6291456,2169697,6291456]),new Uint32Array([2141542,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2220801,2220801,2220801,2220801,2220833,2220833,2220865,2220865,2220865,2220865,2220897,2220897,2220897,2220897,2139873,2139873]),new Uint32Array([0,0,0,0,0,23068672,23068672,0,0,0,0,0,0,0,6291456,0]),new Uint32Array([2214849,2218433,2218465,2218497,2218529,2218561,2214881,2218593,2218625,2218657,2218689,2218721,2218753,2216545,2218785,2218817]),new Uint32Array([23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,0,0,0,6291456]),new Uint32Array([2136482,2164610,2164674,2164738,2164802,2132802,2132706,2164866,2132898,2164930,2164994,2165058,2165122,2132802,2132706,2164866]),new Uint32Array([2207649,2207681,2207713,2207745,2207777,2207809,2207841,2207873,2207905,2207937,2207969,2208001,2208033,2208065,2208097,2208129]),new Uint32Array([2123683,2105092,2152706,2123779,2105220,2152770,2100453,2098755,2123906,2124002,2124098,2124194,2124290,2124386,2124482,2124578]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,6291456,0,0,0,0,0,0,0,10485857]),new Uint32Array([6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([10508163,10508259,10508355,10508451,2200129,2200161,2192737,2200193,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2203553,6291456,2203585,6291456,6291456,6291456,2203617,6291456,2203649,6291456,2203681,6291456,2203713,6291456,2203745,6291456]),new Uint32Array([18884449,18884065,23068672,18884417,18884034,18921185,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,18874368]),new Uint32Array([2247393,2247426,2247489,2247521,2247553,2247586,2247649,2247681,2247713,2247745,2247777,2247810,2247873,2247905,2247937,2247969]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,23068672]),new Uint32Array([2134145,2097153,2134241,0,2132705,2130977,2160065,2131297,0,2133089,2160577,2133857,2235297,0,2235329,0]),new Uint32Array([2182593,6291456,2182625,6291456,2182657,6291456,2182689,6291456,2182721,6291456,2182753,6291456,2182785,6291456,2182817,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2102402,2102403,6291456,2110050]),new Uint32Array([2149890,2108323,2149954,6291456,2113441,6291456,2149057,6291456,2113441,6291456,2105473,2167265,2111137,2105505,6291456,2108353]),new Uint32Array([2219105,2219137,2195233,2251554,2251617,2251649,2251681,2251713,2251746,2251810,2251873,2251905,2251937,2251970,2252033,2219169]),new Uint32Array([2203009,6291456,2203041,6291456,2203073,6291456,2203105,6291456,2203137,6291456,2203169,6291456,2203201,6291456,2203233,6291456]),new Uint32Array([2128195,2128291,2128387,2128483,2128579,2128675,2128771,2128867,2128963,2129059,2129155,2129251,2129347,2129443,2129539,2129635]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2140964,2141156,2140966,2141158,2141350]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2225378,2225442,2225506,2225570,2225634,2225698,2225762,2225826,2225890,2225954,2226018,2226082,2226146,2226210,2226274,2226338]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137,2105505,2098241,2108353,2108417]),new Uint32Array([2108353,2108417,0,2105601,2108193,2157121,2157313,2157377,2157441,2100897,6291456,2108419,2173953,2173633,2173633,2173953]),new Uint32Array([2111713,2173121,2111905,2098177,2173153,2173185,2173217,2113153,2113345,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,2190753]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,2197249,6291456,2117377,2197281,2197313,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,0,0,0,0,0,0,23068672,0,0,0,0,0,6291456,6291456,6291456]),new Uint32Array([2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,2100833,2100737,2098337,2101441,2101569,2101697,2101825,2101953]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0]),new Uint32Array([0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,23068672,23068672,23068672]),new Uint32Array([2173281,6291456,2173313,6291456,2173345,6291456,2173377,6291456,0,0,10532546,6291456,6291456,6291456,10562017,2173441]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,0,0]),new Uint32Array([23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2159426,2159490,2159554,2159362,2159618,2159682,2139522,2136450,2159746,2159810,2159874,2130978,2131074,2131266,2131362,2159938]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2203233,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2203265,6291456,2203297,6291456,2203329,2203361,6291456]),new Uint32Array([6291456,6291456,2148418,2148482,2148546,0,6291456,2148610,2186529,2186561,2148417,2148545,2148482,10495778,2143969,10495778]),new Uint32Array([2134146,2139426,2160962,2134242,2161218,2161282,2161346,2161410,2138658,2134722,2134434,2134818,2097666,2097346,2097698,2105986]),new Uint32Array([2198881,2198913,2198945,2198977,2199009,2199041,2199073,2199105,2199137,2199169,2199201,2199233,2199265,2199297,2199329,2199361]),new Uint32Array([0,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456]),new Uint32Array([10610561,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193]),new Uint32Array([2183873,6291456,2183905,6291456,2183937,6291456,2183969,6291456,2184001,6291456,2184033,6291456,2184065,6291456,2184097,6291456]),new Uint32Array([2244642,2244706,2244769,2244801,2218305,2244833,2244865,2244897,2244929,2244961,2244993,2245026,2245089,2245122,2245185,0]),new Uint32Array([6291456,6291456,2116513,2116609,2116705,2116801,2199873,2199905,2199937,2199969,2190913,2200001,2200033,2200065,2200097,2191009]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,2180673,2180705,2180737,2180769,2180801,2180833,0,0]),new Uint32Array([2098081,2099521,2099105,2120705,2098369,2120801,2103361,2097985,2098433,2121377,2121473,2099169,2099873,2098401,2099393,2152609]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2150402]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,2145666,2145730,6291456,6291456]),new Uint32Array([2173921,2173953,2173985,2173761,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233057,2148481,2173601,2173633,2173665]),new Uint32Array([2187073,6291456,6291456,6291456,6291456,2098241,2098241,2108353,2100897,2111905,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2102404,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,2100612,6291456,6291456,6291456,6291456,6291456,6291456,6291456,10485857]),new Uint32Array([2149057,2233057,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889]),new Uint32Array([2217697,2217729,2217761,2217793,2217825,2217857,2217889,2217921,2217953,2215873,2217985,2215905,2218017,2218049,2218081,2218113]),new Uint32Array([2211233,2218849,2216673,2218881,2218913,2218945,2218977,2219009,2216833,2219041,2215137,2219073,2216865,2209505,2219105,2216897]),new Uint32Array([2240097,2240129,2240161,2240193,2240225,2240257,2240289,2240321,2240353,2240386,2240449,2240481,2240513,2240545,2207905,2240578]),new Uint32Array([6291456,6291456,2202273,6291456,2202305,6291456,2202337,6291456,2202369,6291456,2202401,6291456,2202433,6291456,2202465,6291456]),new Uint32Array([0,23068672,23068672,18923394,23068672,18923458,18923522,18884099,18923586,18884195,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2201121,6291456,2201153,6291456,2201185,6291456,2201217,6291456,2201249,6291456,2201281,6291456,2201313,6291456,2201345,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,6291456]),new Uint32Array([2211041,2211073,2211105,2211137,2211169,2211201,2211233,2211265,2211297,2211329,2211361,2211393,2211425,2211457,2211489,2211521]),new Uint32Array([2181825,6291456,2181857,6291456,2181889,6291456,2181921,6291456,2181953,6291456,2181985,6291456,2182017,6291456,2182049,6291456]),new Uint32Array([2162337,2097633,2097633,2097633,2097633,2132705,2132705,2132705,2132705,2097153,2097153,2097153,2097153,2133089,2133089,2133089]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,2148545,6291456,2173473,6291456,2148865,6291456,2173505,6291456,2173537,6291456,2173569,6291456,2149121,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,0,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0]),new Uint32Array([2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953,2173985,2174017,2174017,2174049,2174081,2174113]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2207137,2207169,2207201,2207233,2207265,2207297,2207329,2207361,2207393,2207425,2207457,2207489,2207521,2207553,2207585,2207617]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,6291456,6291456,0,23068672,23068672,0,0,0,0,0,0]),new Uint32Array([2198401,2198433,2198465,2198497,0,2198529,2198561,2198593,2198625,2198657,2198689,2198721,2198753,2198785,2198817,2198849]),new Uint32Array([2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,0,0]),new Uint32Array([2216385,2118721,2216417,2216449,2216481,2216513,2216545,2211233,2216577,2216609,2216641,2216673,2216705,2216737,2216737,2216769]),new Uint32Array([2216801,2216833,2216865,2216897,2216929,2216961,2216993,2215169,2217025,2217057,2217089,2217121,2217154,2217217,0,0]),new Uint32Array([2210593,2191809,2210625,2210657,2210689,2210721,2210753,2210785,2210817,2210849,2191297,2210881,2210913,2210945,2210977,2211009]),new Uint32Array([0,0,2105825,0,0,2111905,2105473,0,0,2112289,2108193,2112481,2112577,0,2098305,2108321]),new Uint32Array([0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,2097153,2134241,0,2132705,0,0,2131297,0,2133089,0,2133857,0,2220769,0,2235361]),new Uint32Array([14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,6291456,6291456,14680064]),new Uint32Array([23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0]),new Uint32Array([2171873,6291456,2171905,6291456,2171937,6291456,2171969,6291456,2172001,6291456,2172033,6291456,2172065,6291456,2172097,6291456]),new Uint32Array([2220929,2220929,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2133857,2134145,2134145,2134145,2134145,2134241,2134241,2134241,2134241,2105889,2105889,2105889,2105889,2097185,2097185,2097185]),new Uint32Array([2173697,2173761,2173793,2174113,2173985,2173953,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,0,10499619,10499715,10499811,10499907]),new Uint32Array([0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,0,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,0,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,0,23068672,23068672,23068672,0,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,6291456,23068672,23068672]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,2144322,2144386,2144450,2144514,2144578,2144642,2144706,2144770]),new Uint32Array([23068672,23068672,23068672,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456]),new Uint32Array([2113153,2108481,2113345,2113441,2098209,2111137,0,2098241,2108353,2108417,2105825,0,0,2111905,2105473,2105569]),new Uint32Array([2236321,2236353,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2152194,2121283,2103684,2103812,2097986,2098533,2097990,2098693,2098595,2098853,2099013,2103940,2121379,2121475,2121571,2104068]),new Uint32Array([2206241,2206273,2206305,2206337,2206369,2206401,2206433,2206465,2206497,2206529,2206561,2206593,2206625,2206657,2206689,2206721]),new Uint32Array([6291456,6291456,6291456,6291456,16777216,16777216,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,23068672,23068672,10538818,10538882,6291456,6291456,2150338]),new Uint32Array([6291456,6291456,6291456,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2214369,2214401,2214433,2214465,2214497,2214529,2214561,2214593,2194977,2214625,2195073,2214657,2214689,2214721,6291456,6291456]),new Uint32Array([2097152,2097152,2097152,2097152,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2182081,6291456,2182113,6291456,2182145,6291456,2182177,6291456,2182209,6291456,2182241,6291456,2182273,6291456,2182305,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2146881,2146945,2147009,2147073,2147137,2147201,2147265,2147329]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,23068672,23068672]),new Uint32Array([0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2122915,2123011,2123107,2104708,2123203,2123299,2123395,2100133,2104836,2100290,2100293,2104962,2104964,2098052,2123491,2123587]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456]),new Uint32Array([6291456,2171169,6291456,2171201,6291456,2171233,6291456,2171265,6291456,2171297,6291456,2171329,6291456,6291456,2171361,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,2148994,2149058,2149122,0,6291456,2149186,2186945,2173537,2148993,2149121,2149058,10531458,10496066,0]),new Uint32Array([2195009,2195041,2195073,2195105,2195137,2195169,2195201,2195233,2195265,2195297,2195329,2195361,2195393,2195425,2195457,2195489]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,0,0,6291456,6291456]),new Uint32Array([2182849,6291456,2182881,6291456,2182913,6291456,2182945,6291456,2182977,6291456,2183009,6291456,2183041,6291456,2183073,6291456]),new Uint32Array([2211553,2210081,2211585,2211617,2211649,2211681,2211713,2211745,2211777,2211809,2209569,2211841,2211873,2211905,2211937,2211969]),new Uint32Array([2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2166594,2127298,2166658,2142978,2141827,2166722]),new Uint32Array([2173985,2173761,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233057,2148481,2173601,2173633,2173665,2173697,2173729]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,0,0,2185761,2185793,2185825,2185857,2185889,2185921,0,0]),new Uint32Array([6291456,2148481,2173601,2173633,2173665,2173697,2173729,2148801,2173761,2143969,2173793,2173825,2153473,2173857,2173889,2173921]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,6291456]),new Uint32Array([0,0,0,2220961,2220961,2220961,2220961,2144193,2144193,2159201,2159201,2159265,2159265,2144194,2220993,2220993]),new Uint32Array([2192641,2235393,2235425,2152257,2116609,2235457,2235489,2200065,2235521,2235553,2235585,2212449,2235617,2235649,2235681,2235713]),new Uint32Array([2194049,2194081,2194113,2194145,2194177,2194209,2194241,2194273,2194305,2194337,2194369,2194401,2194433,2194465,2194497,2194529]),new Uint32Array([2196673,2208641,2208673,2208705,2208737,2208769,2208801,2208833,2208865,2208897,2208929,2208961,2208993,2209025,2209057,2209089]),new Uint32Array([2191681,2191713,2191745,2191777,2153281,2191809,2191841,2191873,2191905,2191937,2191969,2192001,2192033,2192065,2192097,2192129]),new Uint32Array([2230946,2231010,2231074,2231138,2231202,2231266,2231330,2231394,2231458,2231522,2231586,2231650,2231714,2231778,2231842,2231906]),new Uint32Array([14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064,14680064]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,2185953,2185985,2186017,2186049,2186081,2186113,2186145,2186177]),new Uint32Array([2139811,2139907,2097284,2105860,2105988,2106116,2106244,2097444,2097604,2097155,10485778,10486344,2106372,6291456,0,0]),new Uint32Array([2110051,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2172385,6291456,2172417,6291456,2172449,6291456,2172481,6291456,2172513,6291456,2172545,6291456,2172577,6291456,2172609,6291456]),new Uint32Array([0,0,23068672,23068672,6291456,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2249345,2249377,2249409,2249441,2249473,2249505,2249537,2249570,2210209,2249633,2249665,2249697,2249729,2249761,2249793,2216769]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,6291456,6291456,6291456,6291456]),new Uint32Array([2187169,2187201,2187233,2187265,2187297,2187329,2187361,2187393,2187425,2187457,2187489,2187521,2187553,2187585,2187617,2187649]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([0,0,0,6291456,6291456,0,0,0,6291456,6291456,6291456,0,0,0,6291456,6291456]),new Uint32Array([2182337,6291456,2182369,6291456,2182401,6291456,2182433,6291456,2182465,6291456,2182497,6291456,2182529,6291456,2182561,6291456]),new Uint32Array([2138179,2138275,2138371,2138467,2134243,2134435,2138563,2138659,2138755,2138851,2138947,2139043,2138947,2138755,2139139,2139235]),new Uint32Array([23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0]),new Uint32Array([0,0,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2250498,2250562,2250625,2250657,2208321,2250689,2250721,2250753,2250785,2250817,2250849,2218945,2250881,2250913,2250945,0]),new Uint32Array([2170369,2105569,2098305,2108481,2173249,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456]),new Uint32Array([2100897,2111905,2105473,2105569,2105601,0,2108193,0,0,0,2098305,2108321,2108289,2100865,2113153,2108481]),new Uint32Array([2100897,2100897,2105569,2105569,6291456,2112289,2149826,6291456,6291456,2112481,2112577,2098177,2098177,2098177,6291456,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,6291456,6291456,6291456]),new Uint32Array([6291456,2169953,2169985,6291456,2170017,6291456,2170049,2170081,6291456,2170113,2170145,2170177,6291456,6291456,2170209,2170241]),new Uint32Array([6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([0,0,0,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2220641,2220641,2220673,2220673,2220673,2220673,2220705,2220705,2220705,2220705,2220737,2220737,2220737,2220737,2220769,2220769]),new Uint32Array([2127650,2127746,2127842,2127938,2128034,2128130,2128226,2128322,2128418,2127523,2127619,2127715,2127811,2127907,2128003,2128099]),new Uint32Array([2143969,2173793,2173825,2153473,2173857,2173889,2173921,2173953,2173985,2173761,2174017,2174049,2174081,2174113,2174145,2174177]),new Uint32Array([0,0,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([2204705,2204737,2204769,2204801,2204833,2204865,2204897,2204929,2204961,2204993,2205025,2205057,2205089,2205121,2205153,2205185]),new Uint32Array([2176385,6291456,2176417,6291456,2176449,6291456,2176481,6291456,2176513,6291456,2176545,6291456,2176577,6291456,2176609,6291456]),new Uint32Array([2195521,2195553,2195585,2195617,2195649,2195681,2117857,2195713,2195745,2195777,2195809,2195841,2195873,2195905,2195937,2195969]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,6291456,6291456]),new Uint32Array([2173921,2173953,2173985,2174017,2174017,2174049,2174081,2174113,2174145,2174177,2149057,2233089,2173697,2173761,2173793,2174113]),new Uint32Array([2131586,2132450,2135970,2135778,2161602,2136162,2163650,2161794,2135586,2163714,2137186,2131810,2160290,2135170,2097506,2159554]),new Uint32Array([2134145,2097153,2134241,2105953,2132705,2130977,2160065,2131297,2162049,2133089,2160577,2133857,0,0,0,0]),new Uint32Array([2116513,2116609,2116705,2116801,2116897,2116993,2117089,2117185,2117281,2117377,2117473,2117569,2117665,2117761,2117857,2117953]),new Uint32Array([2100737,2098337,2101441,2101569,2101697,2101825,2101953,2102081,2102209,2100802,2101154,2101282,2101410,2101538,2101666,2101794]),new Uint32Array([2100289,2098657,2098049,2200737,2123489,2123681,2200769,2098625,2100321,2098145,2100449,2098017,2098753,2098977,2150241,2150305]),new Uint32Array([6291456,6291456,6291456,0,6291456,6291456,6291456,6291456,6291456,2109955,6291456,6291456,0,0,0,0]),new Uint32Array([18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368,18874368]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,6291456,0,6291456,0,0]),new Uint32Array([2130979,2131075,2131075,2131171,2131267,2131363,2131459,2131555,2131651,2131651,2131747,2131843,2131939,2132035,2132131,2132227]),new Uint32Array([0,2177793,6291456,2177825,6291456,2177857,6291456,2177889,6291456,2177921,6291456,2177953,6291456,2177985,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672]),new Uint32Array([6291456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2113345,0,2098209,2111137,2105505,2098241,2108353,2108417,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289]),new Uint32Array([2136643,2136739,2136835,2136931,2137027,2137123,2137219,2137315,2137411,2137507,2137603,2137699,2137795,2137891,2137987,2138083]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0]),new Uint32Array([2174433,6291456,2174465,6291456,2174497,6291456,2174529,6291456,2174561,6291456,2174593,6291456,2174625,6291456,2174657,6291456]),new Uint32Array([0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441]),new Uint32Array([10496547,10496643,2105505,2149698,6291456,10496739,10496835,2170273,6291456,2149762,2105825,2111713,2111713,2111713,2111713,2168673]),new Uint32Array([6291456,2143490,2143490,2143490,2171649,6291456,2171681,2171713,2171745,6291456,2171777,6291456,2171809,6291456,2171841,6291456]),new Uint32Array([2159106,2159106,2159170,2159170,2159234,2159234,2159298,2159298,2159298,2159362,2159362,2159362,2106401,2106401,2106401,2106401]),new Uint32Array([2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865,2113153,2108481,2113345,2113441,2098209,2111137]),new Uint32Array([2108417,2181217,2181249,2181281,2170433,2170401,2181313,2181345,2181377,2181409,2181441,2181473,2181505,2181537,2170529,2181569]),new Uint32Array([2218433,2245761,2245793,2245825,2245857,2245890,2245953,2245986,2209665,2246050,2246113,2246146,2246210,2246274,2246337,2246369]),new Uint32Array([2230754,2230818,2230882,0,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([6291456,0,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,0,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2184129,6291456,2184161,6291456,2184193,6291456,6291456,6291456,6291456,6291456,2146818,2183361,6291456,6291456,2142978,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2135170,2097506,2130691,2130787,2130883,2163970,2164034,2164098,2164162,2164226,2164290,2164354,2164418,2164482,2164546,2133122]),new Uint32Array([2108515,2108611,2100740,2108707,2108803,2108899,2108995,2109091,2109187,2109283,2109379,2109475,2109571,2109667,2109763,2100738]),new Uint32Array([2102788,2102916,2103044,2120515,2103172,2120611,2120707,2098373,2103300,2120803,2120899,2120995,2103428,2103556,2121091,2121187]),new Uint32Array([2158082,2158146,0,2158210,2158274,0,2158338,2158402,2158466,2129922,2158530,2158594,2158658,2158722,2158786,2158850]),new Uint32Array([10499619,10499715,10499811,10499907,10500003,10500099,10500195,10500291,10500387,10500483,10500579,10500675,10500771,10500867,10500963,10501059]),new Uint32Array([2239585,2239618,2239681,2239713,0,2191969,2239745,2239777,2192033,2239809,2239841,2239874,2239937,2239970,2240033,2240065]),new Uint32Array([2252705,2252738,2252801,2252833,2252865,2252897,2252930,2252994,2253057,2253089,2253121,2253154,2253217,2253250,2219361,2219361]),new Uint32Array([2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,2108193,2112481,2112577,2098177,2098305,2108321,2108289,2100865]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,10538050,10538114,10538178,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([2226402,2226466,2226530,2226594,2226658,2226722,2226786,2226850,2226914,2226978,2227042,2227106,2227170,2227234,2227298,2227362]),new Uint32Array([23068672,6291456,6291456,6291456,6291456,2144066,2144130,2144194,2144258,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,23068672,23068672,23068672,6291456,23068672,23068672]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0]),new Uint32Array([2124674,2124770,2123875,2123971,2124067,2124163,2124259,2124355,2124451,2124547,2124643,2124739,2124835,2124931,2125027,2125123]),new Uint32Array([2168065,6291456,2168097,6291456,2168129,6291456,2168161,6291456,2168193,6291456,2168225,6291456,2168257,6291456,2168289,6291456]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0]),new Uint32Array([23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,2100610,2100611,6291456,2107842,2107843,6291456,6291456,6291456,6291456,10537922,6291456,10537986,6291456]),new Uint32Array([2174849,2174881,2174913,2174945,2174977,2175009,2175041,2175073,2175105,2175137,2175169,2175201,2175233,2175265,2175297,2175329]),new Uint32Array([2154562,2154626,2154690,2154754,2141858,2154818,2154882,2127298,2154946,2127298,2155010,2155074,2155138,2155202,2155266,2155202]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456,6291456,6291456,6291456,6291456,23068672,0]),new Uint32Array([2200641,2150786,2150850,2150914,2150978,2151042,2106562,2151106,2150562,2151170,2151234,2151298,2151362,2151426,2151490,2151554]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,23068672,0,0,0,0,0,0,0,0,6291456,6291456]),new Uint32Array([2220289,2220289,2220321,2220321,2220321,2220321,2220353,2220353,2220353,2220353,2220385,2220385,2220385,2220385,2220417,2220417]),new Uint32Array([2155330,2155394,0,2155458,2155522,2155586,2105732,0,2155650,2155714,2155778,2125314,2155842,2155906,2126274,2155970]),new Uint32Array([23068672,23068672,23068672,23068672,23068672,6291456,6291456,23068672,23068672,6291456,23068672,23068672,23068672,23068672,6291456,6291456]),new Uint32Array([6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,6291456,0,0,0,0,0,0]),new Uint32Array([2097729,2106017,2106017,2106017,2106017,2131297,2131297,2131297,2131297,2106081,2106081,2162049,2162049,2105953,2105953,2162337]),new Uint32Array([2097185,2097697,2097697,2097697,2097697,2135777,2135777,2135777,2135777,2097377,2097377,2097377,2097377,2097601,2097601,2097217]),new Uint32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23068672]),new Uint32Array([2139331,2139427,2139523,2139043,2133571,2132611,2139619,2139715,0,0,0,0,0,0,0,0]),new Uint32Array([2174113,2174145,2100897,2098177,2108289,2100865,2173601,2173633,2173985,2174113,2174145,6291456,6291456,6291456,6291456,6291456]),new Uint32Array([6291456,6291456,23068672,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456,23068672,6291456,6291456,6291456,6291456]),new Uint32Array([23068672,23068672,18923778,23068672,23068672,23068672,23068672,18923842,23068672,23068672,23068672,23068672,18923906,23068672,23068672,23068672]),new Uint32Array([2134145,2097153,2134241,0,2132705,2130977,2160065,2131297,0,2133089,0,2133857,0,0,0,0]),new Uint32Array([6291456,6291456,6291456,6291456,0,0,0,0,0,0,0,0,0,0,0,0]),new Uint32Array([2177537,6291456,2177569,6291456,2177601,6291456,2177633,6291456,2177665,6291456,2177697,6291456,2177729,6291456,2177761,6291456]),new Uint32Array([2212481,2212513,2212545,2212577,2197121,2212609,2212641,2212673,2212705,2212737,2212769,2212801,2212833,2212865,2212897,2212929]),new Uint32Array([6291456,6291456,23068672,23068672,23068672,6291456,6291456,0,0,0,0,0,0,0,0,0]),new Uint32Array([2098241,2108353,2170209,2105825,2111713,2100897,2111905,2105473,2105569,2105601,2112289,6291456,2108193,2172417,2112481,2098177]),new Uint32Array([6291456,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,23068672,6291456,6291456])],e=new Uint16Array([616,616,565,147,161,411,330,2,131,131,328,454,241,408,86,86,696,113,285,350,325,301,473,214,639,232,447,64,369,598,124,672,567,223,621,154,107,86,86,86,86,86,86,505,86,68,634,86,218,218,218,218,486,218,218,513,188,608,216,86,217,463,668,85,700,360,184,86,86,86,647,402,153,10,346,718,662,260,145,298,117,1,443,342,138,54,563,86,240,572,218,70,387,86,118,460,641,602,86,86,306,218,86,692,86,86,86,86,86,162,707,86,458,26,86,218,638,86,86,86,86,86,65,449,86,86,306,183,86,58,391,667,86,157,131,131,131,131,86,433,131,406,31,218,247,86,86,693,218,581,351,86,438,295,69,462,45,126,173,650,14,295,69,97,168,187,641,78,523,390,69,108,287,664,173,219,83,295,69,108,431,426,173,694,412,115,628,52,257,398,641,118,501,121,69,579,151,423,173,620,464,121,69,382,151,476,173,27,53,121,86,594,578,226,173,86,632,130,86,96,228,268,641,622,563,86,86,21,148,650,131,131,321,43,144,343,381,531,131,131,178,20,86,399,156,375,164,541,30,60,715,198,92,118,131,131,86,86,306,407,86,280,457,196,488,358,131,131,244,86,86,143,86,86,86,86,86,667,563,86,86,86,86,86,86,86,86,86,86,86,86,86,336,363,86,86,336,86,86,380,678,67,86,86,86,678,86,86,86,512,86,307,86,708,86,86,86,86,86,528,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,563,307,86,86,86,86,86,104,450,337,86,720,86,32,450,397,86,86,86,587,218,558,708,708,293,708,86,86,86,86,86,694,205,86,8,86,86,86,86,549,86,667,697,697,679,86,458,460,86,86,650,86,708,543,86,86,86,245,86,86,86,140,218,127,708,708,458,197,131,131,131,131,500,86,86,483,251,86,306,510,515,86,722,86,86,86,65,201,86,86,483,580,470,86,86,86,368,131,131,131,694,114,110,555,86,86,123,721,163,142,713,418,86,317,675,209,218,218,218,371,545,592,629,490,603,199,46,320,525,680,310,279,388,111,42,252,593,607,235,617,410,377,50,548,135,356,17,520,189,116,392,600,349,332,482,699,690,535,119,106,451,71,152,667,131,218,218,265,671,637,492,504,533,683,269,269,658,86,86,86,86,86,86,86,86,86,491,619,86,86,6,86,86,86,86,86,86,86,86,86,86,86,229,86,86,86,86,86,86,86,86,86,86,86,86,667,86,86,171,131,118,131,656,206,234,571,89,334,670,246,311,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,534,86,86,86,86,86,86,82,86,86,86,86,86,430,86,86,86,86,86,86,86,86,86,599,86,324,86,470,69,640,264,131,626,101,174,86,86,667,233,105,73,374,394,221,204,84,28,326,86,86,471,86,86,86,109,573,86,171,200,200,200,200,218,218,86,86,86,86,460,131,131,131,86,506,86,86,86,86,86,220,404,34,614,47,442,305,25,612,338,601,648,7,344,255,131,131,51,86,312,507,563,86,86,86,86,588,86,86,86,86,86,530,511,86,458,3,435,384,556,522,230,527,86,118,86,86,717,86,137,273,79,181,484,23,93,112,655,249,417,703,370,87,98,313,684,585,155,465,596,481,695,18,416,428,61,701,706,282,643,495,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,549,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,549,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,307,86,86,86,171,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,650,131,422,542,420,263,24,172,86,86,86,86,86,566,86,86,132,540,395,353,494,519,19,485,284,472,131,131,131,16,714,86,211,708,86,86,86,694,698,86,86,483,704,708,218,272,86,86,120,86,159,478,86,307,247,86,86,663,597,459,627,667,86,86,277,455,39,302,86,250,86,86,86,271,99,452,306,281,329,400,200,86,86,362,549,352,646,461,323,586,86,86,4,708,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,717,86,518,86,86,650,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,125,554,480,300,613,72,333,288,561,544,604,48,719,91,169,176,590,224,76,191,29,559,560,231,537,166,477,538,256,437,131,131,469,167,40,0,685,266,441,705,239,642,475,568,640,610,299,673,517,318,385,22,202,180,179,359,424,215,90,66,521,653,467,682,453,409,479,88,131,661,35,303,15,262,666,630,712,131,131,618,659,175,218,195,347,193,227,261,150,165,709,546,294,569,710,270,413,376,524,55,242,38,419,529,170,657,3,304,122,379,278,131,651,86,67,576,458,458,131,131,86,86,86,86,86,86,86,118,309,86,86,547,86,86,86,86,667,650,664,131,131,86,86,56,131,131,131,131,131,131,131,131,86,307,86,86,86,664,238,650,86,86,717,86,118,86,86,315,86,59,86,86,574,549,131,131,340,57,436,86,86,86,86,86,86,458,708,499,691,62,86,650,86,86,694,86,86,86,319,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,171,86,549,694,131,131,131,131,131,131,131,131,131,77,86,86,139,86,502,86,86,86,667,595,131,131,131,86,12,86,13,86,609,131,131,131,131,86,86,86,625,86,669,86,86,182,129,86,5,694,104,86,86,86,86,131,131,86,86,386,171,86,86,86,345,86,324,86,589,86,213,36,131,131,131,131,131,86,86,86,86,104,131,131,131,141,290,80,677,86,86,86,267,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,667,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,515,86,86,33,136,669,86,711,515,86,86,550,640,86,104,708,515,86,159,372,717,86,86,444,515,86,86,663,37,86,563,460,86,390,624,702,131,131,131,131,389,59,708,86,86,341,208,708,635,295,69,108,431,508,100,190,131,131,131,131,131,131,131,131,86,86,86,649,516,660,131,131,86,86,86,218,631,708,131,131,131,131,131,131,131,131,131,131,86,86,341,575,238,514,131,131,86,86,86,218,291,708,307,131,86,86,306,367,708,131,131,131,86,378,697,86,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,615,253,86,86,86,292,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,104,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,69,86,341,553,549,86,307,86,86,645,275,455,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,708,131,131,131,131,131,131,86,86,86,86,86,86,667,460,86,86,86,86,86,86,86,86,86,86,86,86,717,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,667,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,171,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,104,86,667,459,131,131,131,131,131,131,86,458,225,86,86,86,516,549,11,390,405,86,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,460,44,218,197,711,515,131,131,131,131,664,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,307,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,308,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,640,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,118,307,104,286,591,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,549,86,86,681,86,86,75,185,314,582,86,358,496,474,86,104,131,86,86,86,86,146,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,171,86,640,131,131,131,131,131,131,131,131,246,503,689,339,674,81,258,415,439,128,562,366,414,246,503,689,583,222,557,316,636,665,186,355,95,670,246,503,689,339,674,557,258,415,439,186,355,95,670,246,503,689,446,644,536,652,331,532,335,440,274,421,297,570,74,425,364,425,606,552,403,509,134,365,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,218,218,218,498,218,218,577,627,551,497,572,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,553,354,236,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,296,455,131,131,456,243,103,86,41,459,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,9,276,158,716,393,564,383,489,401,654,210,654,131,131,131,640,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,650,86,86,86,86,86,86,717,667,563,563,563,86,549,102,686,133,246,605,86,448,86,86,207,307,131,131,131,641,86,177,611,445,373,194,584,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,308,307,171,86,86,86,86,86,86,86,717,86,86,86,86,86,460,131,131,650,86,86,86,694,708,86,86,694,86,458,131,131,131,131,131,131,667,694,289,650,667,131,131,86,640,131,131,664,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,171,131,131,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,460,86,86,86,86,86,86,86,86,86,86,86,86,86,458,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,640,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,466,203,149,429,94,432,160,687,539,63,237,283,192,248,348,259,427,526,396,676,254,468,487,212,327,623,49,633,322,493,434,688,357,361,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131]),{mapStr:"صلى الله عليه وسلمجل جلالهキロメートルrad∕s2エスクードキログラムキロワットグラムトンクルゼイロサンチームパーセントピアストルファラッドブッシェルヘクタールマンションミリバールレントゲン′′′′1⁄10viii(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫(오전)(오후)アパートアルファアンペアイニングエーカーカラットカロリーキュリーギルダークローネサイクルシリングバーレルフィートポイントマイクロミクロンメガトンリットルルーブル株式会社kcalm∕s2c∕kgاكبرمحمدصلعمرسولریال1⁄41⁄23⁄4 ̈́ྲཱྀླཱྀ ̈͂ ̓̀ ̓́ ̓͂ ̔̀ ̔́ ̔͂ ̈̀‵‵‵a/ca/sc/oc/utelfax1⁄71⁄91⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83⁄85⁄87⁄8xii0⁄3∮∮∮(1)(2)(3)(4)(5)(6)(7)(8)(9)(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z)::====(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)pte10月11月12月ergltdアールインチウォンオンスオームカイリガロンガンマギニーケースコルナコーポセンチダースノットハイツパーツピクルフランペニヒヘルツペンスページベータボルトポンドホールホーンマイルマッハマルクヤードヤールユアンルピー10点11点12点13点14点15点16点17点18点19点20点21点22点23点24点hpabardm2dm3khzmhzghzthzmm2cm2km2mm3cm3km3kpampagpalogmilmolppmv∕ma∕m10日11日12日13日14日15日16日17日18日19日20日21日22日23日24日25日26日27日28日29日30日31日galffifflשּׁשּׂ ٌّ ٍّ َّ ُّ ِّ ّٰـَّـُّـِّتجمتحجتحمتخمتمجتمحتمخجمححميحمىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمىفخمقمحقمملحملحيلحىلججلخملمحمحجمحيمجحمجممخممجخهمجهممنحمنحىنجمنجىنمينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمينحيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلے𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱𝅘𝅥𝅲𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯〔s〕ppv〔本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕 ̄ ́ ̧ssi̇ijl·ʼndžljnjdz ̆ ̇ ̊ ̨ ̃ ̋ ιեւاٴوٴۇٴيٴक़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀླྀྒྷྜྷྡྷྦྷྫྷྐྵaʾἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧιὰιαιάιᾶι ͂ὴιηιήιῆιὼιωιώιῶι ̳!! ̅???!!?rs°c°fnosmtmivix⫝̸ ゙ ゚よりコト333435참고주의363738394042444546474849503月4月5月6月7月8月9月hgevギガデシドルナノピコビルペソホンリラレムdaauovpciu平成昭和大正明治naμakakbmbgbpfnfμfμgmgμlmldlklfmnmμmpsnsμsmsnvμvkvpwnwμwmwkwkωmωbqcccddbgyhainkkktlnlxphprsrsvwbstմնմեմիվնմխיִײַשׁשׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּתּוֹבֿכֿפֿאלئائەئوئۇئۆئۈئېئىئجئحئمئيبجبمبىبيتىتيثجثمثىثيخحضجضمطحظمغجفجفحفىفيقحقىقيكاكجكحكخكلكىكينخنىنيهجهىهييىذٰرٰىٰئرئزئنبزبنترتزتنثرثزثنمانرنزننيريزئخئهبهتهصخنههٰثهسهشهطىطيعىعيغىغيسىسيشىشيصىصيضىضيشخشرسرصرضراً ًـًـّ ْـْلآلألإ𝅗𝅥0,1,2,3,4,5,6,7,8,9,wzhvsdwcmcmddjほかココàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįĵķĺļľłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷÿźżɓƃƅɔƈɖɗƌǝəɛƒɠɣɩɨƙɯɲɵơƣƥʀƨʃƭʈưʊʋƴƶʒƹƽǎǐǒǔǖǘǚǜǟǡǣǥǧǩǫǭǯǵƕƿǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟƞȣȥȧȩȫȭȯȱȳⱥȼƚⱦɂƀʉʌɇɉɋɍɏɦɹɻʁʕͱͳʹͷ;ϳέίόύβγδεζθκλνξοπρστυφχψϊϋϗϙϛϝϟϡϣϥϧϩϫϭϯϸϻͻͼͽѐёђѓєѕіїјљњћќѝўџабвгдежзийклмнопрстуфхцчшщъыьэюяѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧԩԫԭԯաբգդզէըթժլծկհձղճյշոչպջռստրցփքօֆ་ⴧⴭნᏰᏱᏲᏳᏴᏵꙋɐɑᴂɜᴖᴗᴝᴥɒɕɟɡɥɪᵻʝɭᶅʟɱɰɳɴɸʂƫᴜʐʑḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿἐἑἒἓἔἕἰἱἲἳἴἵἶἷὀὁὂὃὄὅὑὓὕὗᾰᾱὲΐῐῑὶΰῠῡὺῥ`ὸ‐+−∑〈〉ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞⱡɫᵽɽⱨⱪⱬⱳⱶȿɀⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳬⳮⳳⵡ母龟丨丶丿乙亅亠人儿入冂冖冫几凵刀力勹匕匚匸卜卩厂厶又口囗士夂夊夕女子宀寸小尢尸屮山巛工己巾干幺广廴廾弋弓彐彡彳心戈戶手支攴文斗斤方无曰欠止歹殳毋比毛氏气爪父爻爿片牙牛犬玄玉瓜瓦甘生用田疋疒癶白皮皿目矛矢石示禸禾穴立竹米糸缶网羊羽老而耒耳聿肉臣臼舌舛舟艮色艸虍虫血行衣襾見角言谷豆豕豸貝赤走足身車辛辰辵邑酉釆里長門阜隶隹雨靑非面革韋韭音頁風飛食首香馬骨高髟鬥鬯鬲鬼魚鳥鹵鹿麥麻黃黍黑黹黽鼎鼓鼠鼻齊齒龍龜龠.〒卄卅ᄁᆪᆬᆭᄄᆰᆱᆲᆳᆴᆵᄚᄈᄡᄊ짜ᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵᄔᄕᇇᇈᇌᇎᇓᇗᇙᄜᇝᇟᄝᄞᄠᄢᄣᄧᄩᄫᄬᄭᄮᄯᄲᄶᅀᅇᅌᇱᇲᅗᅘᅙᆄᆅᆈᆑᆒᆔᆞᆡ上中下甲丙丁天地問幼箏우秘男適優印注項写左右医宗夜テヌモヨヰヱヲꙁꙃꙅꙇꙉꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꚙꚛꜣꜥꜧꜩꜫꜭꜯꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝺꝼᵹꝿꞁꞃꞅꞇꞌꞑꞓꞗꞙꞛꞝꞟꞡꞣꞥꞧꞩɬʞʇꭓꞵꞷꬷꭒᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿᏀᏁᏂᏃᏄᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯ豈更賈滑串句契喇奈懶癩羅蘿螺裸邏樂洛烙珞落酪駱亂卵欄爛蘭鸞嵐濫藍襤拉臘蠟廊朗浪狼郎來冷勞擄櫓爐盧蘆虜路露魯鷺碌祿綠菉錄論壟弄籠聾牢磊賂雷壘屢樓淚漏累縷陋勒肋凜凌稜綾菱陵讀拏諾丹寧怒率異北磻便復不泌數索參塞省葉說殺沈拾若掠略亮兩凉梁糧良諒量勵呂廬旅濾礪閭驪麗黎曆歷轢年憐戀撚漣煉璉秊練聯輦蓮連鍊列劣咽烈裂廉念捻殮簾獵令囹嶺怜玲瑩羚聆鈴零靈領例禮醴隸惡了僚寮尿料燎療蓼遼暈阮劉杻柳流溜琉留硫紐類戮陸倫崙淪輪律慄栗隆利吏履易李梨泥理痢罹裏裡離匿溺吝燐璘藺隣鱗麟林淋臨笠粒狀炙識什茶刺切度拓糖宅洞暴輻降廓兀嗀塚晴凞猪益礼神祥福靖精蘒諸逸都飯飼館鶴郞隷侮僧免勉勤卑喝嘆器塀墨層悔慨憎懲敏既暑梅海渚漢煮爫琢碑祉祈祐祖禍禎穀突節縉繁署者臭艹著褐視謁謹賓贈辶難響頻恵𤋮舘並况全侀充冀勇勺啕喙嗢墳奄奔婢嬨廒廙彩徭惘慎愈慠戴揄搜摒敖望杖滛滋瀞瞧爵犯瑱甆画瘝瘟盛直睊着磌窱类絛缾荒華蝹襁覆調請諭變輸遲醙鉶陼韛頋鬒𢡊𢡄𣏕㮝䀘䀹𥉉𥳐𧻓齃龎עםٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھۓڭۋۅۉ、〖〗—–_{}【】《》「」『』[]#&*-<>\\$%@ءؤة\"'^|~⦅⦆・ゥャ¢£¬¦¥₩│←↑→↓■○𐐨𐐩𐐪𐐫𐐬𐐭𐐮𐐯𐐰𐐱𐐲𐐳𐐴𐐵𐐶𐐷𐐸𐐹𐐺𐐻𐐼𐐽𐐾𐐿𐑀𐑁𐑂𐑃𐑄𐑅𐑆𐑇𐑈𐑉𐑊𐑋𐑌𐑍𐑎𐑏𐓘𐓙𐓚𐓛𐓜𐓝𐓞𐓟𐓠𐓡𐓢𐓣𐓤𐓥𐓦𐓧𐓨𐓩𐓪𐓫𐓬𐓭𐓮𐓯𐓰𐓱𐓲𐓳𐓴𐓵𐓶𐓷𐓸𐓹𐓺𐓻𐳀𐳁𐳂𐳃𐳄𐳅𐳆𐳇𐳈𐳉𐳊𐳋𐳌𐳍𐳎𐳏𐳐𐳑𐳒𐳓𐳔𐳕𐳖𐳗𐳘𐳙𐳚𐳛𐳜𐳝𐳞𐳟𐳠𐳡𐳢𐳣𐳤𐳥𐳦𐳧𐳨𐳩𐳪𐳫𐳬𐳭𐳮𐳯𐳰𐳱𐳲𑣀𑣁𑣂𑣃𑣄𑣅𑣆𑣇𑣈𑣉𑣊𑣋𑣌𑣍𑣎𑣏𑣐𑣑𑣒𑣓𑣔𑣕𑣖𑣗𑣘𑣙𑣚𑣛𑣜𑣝𑣞𑣟ıȷ∇∂𞤢𞤣𞤤𞤥𞤦𞤧𞤨𞤩𞤪𞤫𞤬𞤭𞤮𞤯𞤰𞤱𞤲𞤳𞤴𞤵𞤶𞤷𞤸𞤹𞤺𞤻𞤼𞤽𞤾𞤿𞥀𞥁𞥂𞥃ٮڡٯ字双多解交映無前後再新初終販声吹演投捕遊指禁空合満申割営配得可丽丸乁𠄢你侻倂偺備像㒞𠘺兔兤具𠔜㒹內𠕋冗冤仌冬𩇟刃㓟刻剆剷㔕包匆卉博即卽卿𠨬灰及叟𠭣叫叱吆咞吸呈周咢哶唐啓啣善喫喳嗂圖圗噑噴壮城埴堍型堲報墬𡓤売壷夆夢奢𡚨𡛪姬娛娧姘婦㛮嬈嬾𡧈寃寘寳𡬘寿将㞁屠峀岍𡷤嵃𡷦嵮嵫嵼巡巢㠯巽帨帽幩㡢𢆃㡼庰庳庶𪎒𢌱舁弢㣇𣊸𦇚形彫㣣徚忍志忹悁㤺㤜𢛔惇慈慌慺憲憤憯懞戛扝抱拔捐𢬌挽拼捨掃揤𢯱搢揅掩㨮摩摾撝摷㩬敬𣀊旣書晉㬙㬈㫤冒冕最暜肭䏙朡杞杓𣏃㭉柺枅桒𣑭梎栟椔楂榣槪檨𣚣櫛㰘次𣢧歔㱎歲殟殻𣪍𡴋𣫺汎𣲼沿泍汧洖派浩浸涅𣴞洴港湮㴳滇𣻑淹潮𣽞𣾎濆瀹瀛㶖灊災灷炭𠔥煅𤉣熜爨牐𤘈犀犕𤜵𤠔獺王㺬玥㺸瑇瑜璅瓊㼛甤𤰶甾𤲒𢆟瘐𤾡𤾸𥁄㿼䀈𥃳𥃲𥄙𥄳眞真瞋䁆䂖𥐝硎䃣𥘦𥚚𥛅秫䄯穊穏𥥼𥪧䈂𥮫篆築䈧𥲀糒䊠糨糣紀𥾆絣䌁緇縂繅䌴𦈨𦉇䍙𦋙罺𦌾羕翺𦓚𦔣聠𦖨聰𣍟䏕育脃䐋脾媵𦞧𦞵𣎓𣎜舄辞䑫芑芋芝劳花芳芽苦𦬼茝荣莭茣莽菧荓菊菌菜𦰶𦵫𦳕䔫蓱蓳蔖𧏊蕤𦼬䕝䕡𦾱𧃒䕫虐虧虩蚩蚈蜎蛢蜨蝫螆蟡蠁䗹衠𧙧裗裞䘵裺㒻𧢮𧥦䚾䛇誠𧲨貫賁贛起𧼯𠠄跋趼跰𠣞軔𨗒𨗭邔郱鄑𨜮鄛鈸鋗鋘鉼鏹鐕𨯺開䦕閷𨵷䧦雃嶲霣𩅅𩈚䩮䩶韠𩐊䪲𩒖頩𩖶飢䬳餩馧駂駾䯎𩬰鱀鳽䳎䳭鵧𪃎䳸𪄅𪈎𪊑䵖黾鼅鼏鼖𪘀",mapChar:function(r){return r>=196608?r>=917760&&r<=917999?18874368:0:t[e[r>>4]][15&r]}};var t,e}.apply(e,[]))||(t.exports=n)},function(t,e,r){"use strict";t.exports=[{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"resolver",outputs:[{name:"",type:"address"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"owner",outputs:[{name:"",type:"address"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"label",type:"bytes32"},{name:"owner",type:"address"}],name:"setSubnodeOwner",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"ttl",type:"uint64"}],name:"setTTL",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"ttl",outputs:[{name:"",type:"uint64"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"resolver",type:"address"}],name:"setResolver",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"owner",type:"address"}],name:"setOwner",outputs:[],payable:!1,type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"owner",type:"address"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!0,name:"label",type:"bytes32"},{indexed:!1,name:"owner",type:"address"}],name:"NewOwner",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"resolver",type:"address"}],name:"NewResolver",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"ttl",type:"uint64"}],name:"NewTTL",type:"event"},{constant:!1,inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"resolver",type:"address"},{internalType:"uint64",name:"ttl",type:"uint64"}],name:"setRecord",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"bytes32",name:"node",type:"bytes32"}],name:"recordExists",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{internalType:"bytes32",name:"node",type:"bytes32"},{internalType:"bytes32",name:"label",type:"bytes32"},{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"resolver",type:"address"},{internalType:"uint64",name:"ttl",type:"uint64"}],name:"setSubnodeRecord",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"}]},function(t,e,r){"use strict";t.exports=[{constant:!0,inputs:[{name:"interfaceID",type:"bytes4"}],name:"supportsInterface",outputs:[{name:"",type:"bool"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"},{name:"contentTypes",type:"uint256"}],name:"ABI",outputs:[{name:"contentType",type:"uint256"},{name:"data",type:"bytes"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"hash",type:"bytes"}],name:"setMultihash",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"multihash",outputs:[{name:"",type:"bytes"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"x",type:"bytes32"},{name:"y",type:"bytes32"}],name:"setPubkey",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"content",outputs:[{name:"ret",type:"bytes32"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"addr",outputs:[{name:"ret",type:"address"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"contentType",type:"uint256"},{name:"data",type:"bytes"}],name:"setABI",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"name",outputs:[{name:"ret",type:"string"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"name",type:"string"}],name:"setName",outputs:[],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"hash",type:"bytes32"}],name:"setContent",outputs:[],payable:!1,type:"function"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"pubkey",outputs:[{name:"x",type:"bytes32"},{name:"y",type:"bytes32"}],payable:!1,type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"addr",type:"address"}],name:"setAddr",outputs:[],payable:!1,type:"function"},{inputs:[{name:"ensAddr",type:"address"}],payable:!1,type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"a",type:"address"}],name:"AddrChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"hash",type:"bytes32"}],name:"ContentChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"name",type:"string"}],name:"NameChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!0,name:"contentType",type:"uint256"}],name:"ABIChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"x",type:"bytes32"},{indexed:!1,name:"y",type:"bytes32"}],name:"PubkeyChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"node",type:"bytes32"},{indexed:!1,name:"hash",type:"bytes"}],name:"ContenthashChanged",type:"event"},{constant:!0,inputs:[{name:"node",type:"bytes32"}],name:"contenthash",outputs:[{name:"",type:"bytes"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"node",type:"bytes32"},{name:"hash",type:"bytes"}],name:"setContenthash",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"}]},function(t,e,r){"use strict";var n=r(0),i=n(r(56)),o=n(r(77)),a=r(57),s=r(136),u=r(9).errors,f=r(10),c=r(125).interfaceIds;function h(t){this.registry=t}h.prototype.method=function(t,e,r,n,i){return{call:this.call.bind({ensName:t,methodName:e,methodArguments:r,callback:i,parent:this,outputFormatter:n}),send:this.send.bind({ensName:t,methodName:e,methodArguments:r,callback:i,parent:this})}},h.prototype.call=function(t){var e=this,r=new a,n=this.parent.prepareArguments(this.ensName,this.methodArguments),s=this.outputFormatter||null;return this.parent.registry.getResolver(this.ensName).then(function(){var a=(0,o.default)(i.default.mark((function o(a){return i.default.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,e.parent.checkInterfaceSupport(a,e.methodName);case 2:e.parent.handleCall(r,a.methods[e.methodName],n,s,t);case 3:case"end":return i.stop()}}),o)})));return function(t){return a.apply(this,arguments)}}()).catch((function(e){f.isFunction(t)?t(e,null):r.reject(e)})),r.eventEmitter},h.prototype.send=function(t,e){var r=this,n=new a,s=this.parent.prepareArguments(this.ensName,this.methodArguments);return this.parent.registry.getResolver(this.ensName).then(function(){var a=(0,o.default)(i.default.mark((function o(a){return i.default.wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,r.parent.checkInterfaceSupport(a,r.methodName);case 2:r.parent.handleSend(n,a.methods[r.methodName],s,t,e);case 3:case"end":return i.stop()}}),o)})));return function(t){return a.apply(this,arguments)}}()).catch((function(t){f.isFunction(e)?e(t,null):n.reject(t)})),n.eventEmitter},h.prototype.handleCall=function(t,e,r,n,i){return e.apply(this,r).call().then((function(e){n&&(e=n(e)),f.isFunction(i)?i(e,e):t.resolve(e)})).catch((function(e){f.isFunction(i)?i(e,null):t.reject(e)})),t},h.prototype.handleSend=function(t,e,r,n,i){return e.apply(this,r).send(n).on("sending",(function(){t.eventEmitter.emit("sending")})).on("sent",(function(){t.eventEmitter.emit("sent")})).on("transactionHash",(function(e){t.eventEmitter.emit("transactionHash",e)})).on("confirmation",(function(e,r){t.eventEmitter.emit("confirmation",e,r)})).on("receipt",(function(e){t.eventEmitter.emit("receipt",e),t.resolve(e),f.isFunction(i)&&i(e,e)})).on("error",(function(e){t.eventEmitter.emit("error",e),f.isFunction(i)?i(e,null):t.reject(e)})),t},h.prototype.prepareArguments=function(t,e){var r=s.hash(t);return e.length>0?(e.unshift(r),e):[r]},h.prototype.checkInterfaceSupport=function(){var t=(0,o.default)(i.default.mark((function t(e,r){var n;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(c[r]){t.next=2;break}return t.abrupt("return");case 2:return n=!1,t.prev=3,t.next=6,e.methods.supportsInterface(c[r]).call();case 6:n=t.sent,t.next=12;break;case 9:t.prev=9,t.t0=t.catch(3),console.warn('Could not verify interface of resolver contract at "'+e.options.address+'". ');case 12:if(n){t.next=14;break}throw u.ResolverMethodMissingError(e.options.address,r);case 14:case"end":return t.stop()}}),t,null,[[3,9]])})));return function(e,r){return t.apply(this,arguments)}}(),t.exports=h},function(t,e,r){"use strict";var n=r(300);t.exports={decode:function(t){var e=null,r=null,i=null;if(t&&t.error)return{protocolType:null,decoded:t.error};if(t)try{e=n.decode(t);var o=n.getCodec(t);"ipfs-ns"===o?r="ipfs":"swarm-ns"===o?r="bzz":"onion"===o?r="onion":"onion3"===o?r="onion3":e=t}catch(t){i=t.message}return{protocolType:r,decoded:e,error:i}},encode:function(t){var e,r,i=!1;if(t){var o=t.match(/^(ipfs|bzz|onion|onion3):\/\/(.*)/)||t.match(/\/(ipfs)\/(.*)/);o&&(r=o[1],e=o[2]);try{if("ipfs"===r)e.length>=4&&(i="0x"+n.fromIpfs(e));else if("bzz"===r)e.length>=4&&(i="0x"+n.fromSwarm(e));else if("onion"===r)16===e.length&&(i="0x"+n.encode("onion",e));else{if("onion3"!==r)throw new Error("Could not encode content hash: unsupported content type");56===e.length&&(i="0x"+n.encode("onion3",e))}}catch(t){throw t}}return i}}},function(t,e,r){"use strict";var n=r(301),i=r(312),o=i.hexStringToBuffer,a=i.profiles,s=r(335).cidV0ToV1Base32;t.exports={helpers:{cidV0ToV1Base32:s},decode:function(t){var e=o(t),r=n.getCodec(e),i=n.rmPrefix(e),s=a[r];return s||(s=a.default),s.decode(i)},fromIpfs:function(t){return this.encode("ipfs-ns",t)},fromSwarm:function(t){return this.encode("swarm-ns",t)},encode:function(t,e){var r=a[t];r||(r=a.default);var i=r.encode(e);return n.addPrefix(t,i).toString("hex")},getCodec:function(t){var e=o(t);return n.getCodec(e)}}},function(t,e,r){"use strict";(function(n){var i=r(44),o=r(305),a=r(306),s=r(137);(e=t.exports).addPrefix=function(t,e){var r;if(n.isBuffer(t))r=s.varintBufferEncode(t);else{if(!a[t])throw new Error("multicodec not recognized");r=a[t]}return n.concat([r,e])},e.rmPrefix=function(t){return i.decode(t),t.slice(i.decode.bytes)},e.getCodec=function(t){var e=i.decode(t),r=o.get(e);if(void 0===r)throw new Error("Code ".concat(e," not found"));return r},e.getName=function(t){return o.get(t)},e.getNumber=function(t){var e=a[t];if(void 0===e)throw new Error("Codec `"+t+"` not found");return s.varintBufferDecode(e)[0]},e.getCode=function(t){return i.decode(t)},e.getCodeVarint=function(t){var e=a[t];if(void 0===e)throw new Error("Codec `"+t+"` not found");return e},e.getVarint=function(t){return i.encode(t)};var u=r(307);Object.assign(e,u),e.print=r(311)}).call(this,r(2).Buffer)},function(t,e,r){"use strict";t.exports=function t(e,r,i){r=r||[];var o=i=i||0;for(;e>=n;)r[i++]=255&e|128,e/=128;for(;-128&e;)r[i++]=255&e|128,e>>>=7;return r[i]=0|e,t.bytes=i-o+1,r};var n=Math.pow(2,31)},function(t,e,r){"use strict";t.exports=function t(e,r){var n,i=0,o=0,a=r=r||0,s=e.length;do{if(a>=s)throw t.bytes=0,new RangeError("Could not decode varint");n=e[a++],i+=o<28?(127&n)<=128);return t.bytes=a-r,i}},function(t,e,r){"use strict";var n=Math.pow(2,7),i=Math.pow(2,14),o=Math.pow(2,21),a=Math.pow(2,28),s=Math.pow(2,35),u=Math.pow(2,42),f=Math.pow(2,49),c=Math.pow(2,56),h=Math.pow(2,63);t.exports=function(t){return t=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=5;)s+=e[a>>>o-5&31],o-=5;if(o>0&&(s+=e[a<<5-o&31]),i)for(;s.length%8!=0;)s+="=";return s}t.exports=function(t){return{encode:function(e){return o("string"==typeof e?Uint8Array.from(e):e,t)},decode:function(e){var r,i=n(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(t.indexOf(o)<0)throw new Error("invalid base32 character")}}catch(t){i.e(t)}finally{i.f()}return function(t,e){for(var r=(t=t.replace(new RegExp("=","g"),"")).length,n=0,i=0,o=0,a=new Uint8Array(5*r/8|0),s=0;s=8&&(a[o++]=i>>>n-8&255,n-=8);return a.buffer}(e,t)}}}},function(t,e,r){"use strict";function n(t,e){var r;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r-1,r=t.indexOf("-")>-1&&t.indexOf("_")>-1;return{encode:function(t){var n="";n="string"==typeof t?o.from(t).toString("base64"):t.toString("base64"),r&&(n=n.replace(/\+/g,"-").replace(/\//g,"_"));var i=n.indexOf("=");return i>0&&!e&&(n=n.substring(0,i)),n},decode:function(e){var r,i=n(e);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(t.indexOf(a)<0)throw new Error("invalid base64 character")}}catch(t){i.e(t)}finally{i.f()}return o.from(e,"base64")}}}},function(t,e,r){"use strict";e.names=Object.freeze({identity:0,sha1:17,"sha2-256":18,"sha2-512":19,"dbl-sha2-256":86,"sha3-224":23,"sha3-256":22,"sha3-384":21,"sha3-512":20,"shake-128":24,"shake-256":25,"keccak-224":26,"keccak-256":27,"keccak-384":28,"keccak-512":29,"murmur3-128":34,"murmur3-32":35,md4:212,md5:213,"blake2b-8":45569,"blake2b-16":45570,"blake2b-24":45571,"blake2b-32":45572,"blake2b-40":45573,"blake2b-48":45574,"blake2b-56":45575,"blake2b-64":45576,"blake2b-72":45577,"blake2b-80":45578,"blake2b-88":45579,"blake2b-96":45580,"blake2b-104":45581,"blake2b-112":45582,"blake2b-120":45583,"blake2b-128":45584,"blake2b-136":45585,"blake2b-144":45586,"blake2b-152":45587,"blake2b-160":45588,"blake2b-168":45589,"blake2b-176":45590,"blake2b-184":45591,"blake2b-192":45592,"blake2b-200":45593,"blake2b-208":45594,"blake2b-216":45595,"blake2b-224":45596,"blake2b-232":45597,"blake2b-240":45598,"blake2b-248":45599,"blake2b-256":45600,"blake2b-264":45601,"blake2b-272":45602,"blake2b-280":45603,"blake2b-288":45604,"blake2b-296":45605,"blake2b-304":45606,"blake2b-312":45607,"blake2b-320":45608,"blake2b-328":45609,"blake2b-336":45610,"blake2b-344":45611,"blake2b-352":45612,"blake2b-360":45613,"blake2b-368":45614,"blake2b-376":45615,"blake2b-384":45616,"blake2b-392":45617,"blake2b-400":45618,"blake2b-408":45619,"blake2b-416":45620,"blake2b-424":45621,"blake2b-432":45622,"blake2b-440":45623,"blake2b-448":45624,"blake2b-456":45625,"blake2b-464":45626,"blake2b-472":45627,"blake2b-480":45628,"blake2b-488":45629,"blake2b-496":45630,"blake2b-504":45631,"blake2b-512":45632,"blake2s-8":45633,"blake2s-16":45634,"blake2s-24":45635,"blake2s-32":45636,"blake2s-40":45637,"blake2s-48":45638,"blake2s-56":45639,"blake2s-64":45640,"blake2s-72":45641,"blake2s-80":45642,"blake2s-88":45643,"blake2s-96":45644,"blake2s-104":45645,"blake2s-112":45646,"blake2s-120":45647,"blake2s-128":45648,"blake2s-136":45649,"blake2s-144":45650,"blake2s-152":45651,"blake2s-160":45652,"blake2s-168":45653,"blake2s-176":45654,"blake2s-184":45655,"blake2s-192":45656,"blake2s-200":45657,"blake2s-208":45658,"blake2s-216":45659,"blake2s-224":45660,"blake2s-232":45661,"blake2s-240":45662,"blake2s-248":45663,"blake2s-256":45664,"Skein256-8":45825,"Skein256-16":45826,"Skein256-24":45827,"Skein256-32":45828,"Skein256-40":45829,"Skein256-48":45830,"Skein256-56":45831,"Skein256-64":45832,"Skein256-72":45833,"Skein256-80":45834,"Skein256-88":45835,"Skein256-96":45836,"Skein256-104":45837,"Skein256-112":45838,"Skein256-120":45839,"Skein256-128":45840,"Skein256-136":45841,"Skein256-144":45842,"Skein256-152":45843,"Skein256-160":45844,"Skein256-168":45845,"Skein256-176":45846,"Skein256-184":45847,"Skein256-192":45848,"Skein256-200":45849,"Skein256-208":45850,"Skein256-216":45851,"Skein256-224":45852,"Skein256-232":45853,"Skein256-240":45854,"Skein256-248":45855,"Skein256-256":45856,"Skein512-8":45857,"Skein512-16":45858,"Skein512-24":45859,"Skein512-32":45860,"Skein512-40":45861,"Skein512-48":45862,"Skein512-56":45863,"Skein512-64":45864,"Skein512-72":45865,"Skein512-80":45866,"Skein512-88":45867,"Skein512-96":45868,"Skein512-104":45869,"Skein512-112":45870,"Skein512-120":45871,"Skein512-128":45872,"Skein512-136":45873,"Skein512-144":45874,"Skein512-152":45875,"Skein512-160":45876,"Skein512-168":45877,"Skein512-176":45878,"Skein512-184":45879,"Skein512-192":45880,"Skein512-200":45881,"Skein512-208":45882,"Skein512-216":45883,"Skein512-224":45884,"Skein512-232":45885,"Skein512-240":45886,"Skein512-248":45887,"Skein512-256":45888,"Skein512-264":45889,"Skein512-272":45890,"Skein512-280":45891,"Skein512-288":45892,"Skein512-296":45893,"Skein512-304":45894,"Skein512-312":45895,"Skein512-320":45896,"Skein512-328":45897,"Skein512-336":45898,"Skein512-344":45899,"Skein512-352":45900,"Skein512-360":45901,"Skein512-368":45902,"Skein512-376":45903,"Skein512-384":45904,"Skein512-392":45905,"Skein512-400":45906,"Skein512-408":45907,"Skein512-416":45908,"Skein512-424":45909,"Skein512-432":45910,"Skein512-440":45911,"Skein512-448":45912,"Skein512-456":45913,"Skein512-464":45914,"Skein512-472":45915,"Skein512-480":45916,"Skein512-488":45917,"Skein512-496":45918,"Skein512-504":45919,"Skein512-512":45920,"Skein1024-8":45921,"Skein1024-16":45922,"Skein1024-24":45923,"Skein1024-32":45924,"Skein1024-40":45925,"Skein1024-48":45926,"Skein1024-56":45927,"Skein1024-64":45928,"Skein1024-72":45929,"Skein1024-80":45930,"Skein1024-88":45931,"Skein1024-96":45932,"Skein1024-104":45933,"Skein1024-112":45934,"Skein1024-120":45935,"Skein1024-128":45936,"Skein1024-136":45937,"Skein1024-144":45938,"Skein1024-152":45939,"Skein1024-160":45940,"Skein1024-168":45941,"Skein1024-176":45942,"Skein1024-184":45943,"Skein1024-192":45944,"Skein1024-200":45945,"Skein1024-208":45946,"Skein1024-216":45947,"Skein1024-224":45948,"Skein1024-232":45949,"Skein1024-240":45950,"Skein1024-248":45951,"Skein1024-256":45952,"Skein1024-264":45953,"Skein1024-272":45954,"Skein1024-280":45955,"Skein1024-288":45956,"Skein1024-296":45957,"Skein1024-304":45958,"Skein1024-312":45959,"Skein1024-320":45960,"Skein1024-328":45961,"Skein1024-336":45962,"Skein1024-344":45963,"Skein1024-352":45964,"Skein1024-360":45965,"Skein1024-368":45966,"Skein1024-376":45967,"Skein1024-384":45968,"Skein1024-392":45969,"Skein1024-400":45970,"Skein1024-408":45971,"Skein1024-416":45972,"Skein1024-424":45973,"Skein1024-432":45974,"Skein1024-440":45975,"Skein1024-448":45976,"Skein1024-456":45977,"Skein1024-464":45978,"Skein1024-472":45979,"Skein1024-480":45980,"Skein1024-488":45981,"Skein1024-496":45982,"Skein1024-504":45983,"Skein1024-512":45984,"Skein1024-520":45985,"Skein1024-528":45986,"Skein1024-536":45987,"Skein1024-544":45988,"Skein1024-552":45989,"Skein1024-560":45990,"Skein1024-568":45991,"Skein1024-576":45992,"Skein1024-584":45993,"Skein1024-592":45994,"Skein1024-600":45995,"Skein1024-608":45996,"Skein1024-616":45997,"Skein1024-624":45998,"Skein1024-632":45999,"Skein1024-640":46e3,"Skein1024-648":46001,"Skein1024-656":46002,"Skein1024-664":46003,"Skein1024-672":46004,"Skein1024-680":46005,"Skein1024-688":46006,"Skein1024-696":46007,"Skein1024-704":46008,"Skein1024-712":46009,"Skein1024-720":46010,"Skein1024-728":46011,"Skein1024-736":46012,"Skein1024-744":46013,"Skein1024-752":46014,"Skein1024-760":46015,"Skein1024-768":46016,"Skein1024-776":46017,"Skein1024-784":46018,"Skein1024-792":46019,"Skein1024-800":46020,"Skein1024-808":46021,"Skein1024-816":46022,"Skein1024-824":46023,"Skein1024-832":46024,"Skein1024-840":46025,"Skein1024-848":46026,"Skein1024-856":46027,"Skein1024-864":46028,"Skein1024-872":46029,"Skein1024-880":46030,"Skein1024-888":46031,"Skein1024-896":46032,"Skein1024-904":46033,"Skein1024-912":46034,"Skein1024-920":46035,"Skein1024-928":46036,"Skein1024-936":46037,"Skein1024-944":46038,"Skein1024-952":46039,"Skein1024-960":46040,"Skein1024-968":46041,"Skein1024-976":46042,"Skein1024-984":46043,"Skein1024-992":46044,"Skein1024-1000":46045,"Skein1024-1008":46046,"Skein1024-1016":46047,"Skein1024-1024":46048}),e.codes=Object.freeze({0:"identity",17:"sha1",18:"sha2-256",19:"sha2-512",86:"dbl-sha2-256",23:"sha3-224",22:"sha3-256",21:"sha3-384",20:"sha3-512",24:"shake-128",25:"shake-256",26:"keccak-224",27:"keccak-256",28:"keccak-384",29:"keccak-512",34:"murmur3-128",35:"murmur3-32",212:"md4",213:"md5",45569:"blake2b-8",45570:"blake2b-16",45571:"blake2b-24",45572:"blake2b-32",45573:"blake2b-40",45574:"blake2b-48",45575:"blake2b-56",45576:"blake2b-64",45577:"blake2b-72",45578:"blake2b-80",45579:"blake2b-88",45580:"blake2b-96",45581:"blake2b-104",45582:"blake2b-112",45583:"blake2b-120",45584:"blake2b-128",45585:"blake2b-136",45586:"blake2b-144",45587:"blake2b-152",45588:"blake2b-160",45589:"blake2b-168",45590:"blake2b-176",45591:"blake2b-184",45592:"blake2b-192",45593:"blake2b-200",45594:"blake2b-208",45595:"blake2b-216",45596:"blake2b-224",45597:"blake2b-232",45598:"blake2b-240",45599:"blake2b-248",45600:"blake2b-256",45601:"blake2b-264",45602:"blake2b-272",45603:"blake2b-280",45604:"blake2b-288",45605:"blake2b-296",45606:"blake2b-304",45607:"blake2b-312",45608:"blake2b-320",45609:"blake2b-328",45610:"blake2b-336",45611:"blake2b-344",45612:"blake2b-352",45613:"blake2b-360",45614:"blake2b-368",45615:"blake2b-376",45616:"blake2b-384",45617:"blake2b-392",45618:"blake2b-400",45619:"blake2b-408",45620:"blake2b-416",45621:"blake2b-424",45622:"blake2b-432",45623:"blake2b-440",45624:"blake2b-448",45625:"blake2b-456",45626:"blake2b-464",45627:"blake2b-472",45628:"blake2b-480",45629:"blake2b-488",45630:"blake2b-496",45631:"blake2b-504",45632:"blake2b-512",45633:"blake2s-8",45634:"blake2s-16",45635:"blake2s-24",45636:"blake2s-32",45637:"blake2s-40",45638:"blake2s-48",45639:"blake2s-56",45640:"blake2s-64",45641:"blake2s-72",45642:"blake2s-80",45643:"blake2s-88",45644:"blake2s-96",45645:"blake2s-104",45646:"blake2s-112",45647:"blake2s-120",45648:"blake2s-128",45649:"blake2s-136",45650:"blake2s-144",45651:"blake2s-152",45652:"blake2s-160",45653:"blake2s-168",45654:"blake2s-176",45655:"blake2s-184",45656:"blake2s-192",45657:"blake2s-200",45658:"blake2s-208",45659:"blake2s-216",45660:"blake2s-224",45661:"blake2s-232",45662:"blake2s-240",45663:"blake2s-248",45664:"blake2s-256",45825:"Skein256-8",45826:"Skein256-16",45827:"Skein256-24",45828:"Skein256-32",45829:"Skein256-40",45830:"Skein256-48",45831:"Skein256-56",45832:"Skein256-64",45833:"Skein256-72",45834:"Skein256-80",45835:"Skein256-88",45836:"Skein256-96",45837:"Skein256-104",45838:"Skein256-112",45839:"Skein256-120",45840:"Skein256-128",45841:"Skein256-136",45842:"Skein256-144",45843:"Skein256-152",45844:"Skein256-160",45845:"Skein256-168",45846:"Skein256-176",45847:"Skein256-184",45848:"Skein256-192",45849:"Skein256-200",45850:"Skein256-208",45851:"Skein256-216",45852:"Skein256-224",45853:"Skein256-232",45854:"Skein256-240",45855:"Skein256-248",45856:"Skein256-256",45857:"Skein512-8",45858:"Skein512-16",45859:"Skein512-24",45860:"Skein512-32",45861:"Skein512-40",45862:"Skein512-48",45863:"Skein512-56",45864:"Skein512-64",45865:"Skein512-72",45866:"Skein512-80",45867:"Skein512-88",45868:"Skein512-96",45869:"Skein512-104",45870:"Skein512-112",45871:"Skein512-120",45872:"Skein512-128",45873:"Skein512-136",45874:"Skein512-144",45875:"Skein512-152",45876:"Skein512-160",45877:"Skein512-168",45878:"Skein512-176",45879:"Skein512-184",45880:"Skein512-192",45881:"Skein512-200",45882:"Skein512-208",45883:"Skein512-216",45884:"Skein512-224",45885:"Skein512-232",45886:"Skein512-240",45887:"Skein512-248",45888:"Skein512-256",45889:"Skein512-264",45890:"Skein512-272",45891:"Skein512-280",45892:"Skein512-288",45893:"Skein512-296",45894:"Skein512-304",45895:"Skein512-312",45896:"Skein512-320",45897:"Skein512-328",45898:"Skein512-336",45899:"Skein512-344",45900:"Skein512-352",45901:"Skein512-360",45902:"Skein512-368",45903:"Skein512-376",45904:"Skein512-384",45905:"Skein512-392",45906:"Skein512-400",45907:"Skein512-408",45908:"Skein512-416",45909:"Skein512-424",45910:"Skein512-432",45911:"Skein512-440",45912:"Skein512-448",45913:"Skein512-456",45914:"Skein512-464",45915:"Skein512-472",45916:"Skein512-480",45917:"Skein512-488",45918:"Skein512-496",45919:"Skein512-504",45920:"Skein512-512",45921:"Skein1024-8",45922:"Skein1024-16",45923:"Skein1024-24",45924:"Skein1024-32",45925:"Skein1024-40",45926:"Skein1024-48",45927:"Skein1024-56",45928:"Skein1024-64",45929:"Skein1024-72",45930:"Skein1024-80",45931:"Skein1024-88",45932:"Skein1024-96",45933:"Skein1024-104",45934:"Skein1024-112",45935:"Skein1024-120",45936:"Skein1024-128",45937:"Skein1024-136",45938:"Skein1024-144",45939:"Skein1024-152",45940:"Skein1024-160",45941:"Skein1024-168",45942:"Skein1024-176",45943:"Skein1024-184",45944:"Skein1024-192",45945:"Skein1024-200",45946:"Skein1024-208",45947:"Skein1024-216",45948:"Skein1024-224",45949:"Skein1024-232",45950:"Skein1024-240",45951:"Skein1024-248",45952:"Skein1024-256",45953:"Skein1024-264",45954:"Skein1024-272",45955:"Skein1024-280",45956:"Skein1024-288",45957:"Skein1024-296",45958:"Skein1024-304",45959:"Skein1024-312",45960:"Skein1024-320",45961:"Skein1024-328",45962:"Skein1024-336",45963:"Skein1024-344",45964:"Skein1024-352",45965:"Skein1024-360",45966:"Skein1024-368",45967:"Skein1024-376",45968:"Skein1024-384",45969:"Skein1024-392",45970:"Skein1024-400",45971:"Skein1024-408",45972:"Skein1024-416",45973:"Skein1024-424",45974:"Skein1024-432",45975:"Skein1024-440",45976:"Skein1024-448",45977:"Skein1024-456",45978:"Skein1024-464",45979:"Skein1024-472",45980:"Skein1024-480",45981:"Skein1024-488",45982:"Skein1024-496",45983:"Skein1024-504",45984:"Skein1024-512",45985:"Skein1024-520",45986:"Skein1024-528",45987:"Skein1024-536",45988:"Skein1024-544",45989:"Skein1024-552",45990:"Skein1024-560",45991:"Skein1024-568",45992:"Skein1024-576",45993:"Skein1024-584",45994:"Skein1024-592",45995:"Skein1024-600",45996:"Skein1024-608",45997:"Skein1024-616",45998:"Skein1024-624",45999:"Skein1024-632",46e3:"Skein1024-640",46001:"Skein1024-648",46002:"Skein1024-656",46003:"Skein1024-664",46004:"Skein1024-672",46005:"Skein1024-680",46006:"Skein1024-688",46007:"Skein1024-696",46008:"Skein1024-704",46009:"Skein1024-712",46010:"Skein1024-720",46011:"Skein1024-728",46012:"Skein1024-736",46013:"Skein1024-744",46014:"Skein1024-752",46015:"Skein1024-760",46016:"Skein1024-768",46017:"Skein1024-776",46018:"Skein1024-784",46019:"Skein1024-792",46020:"Skein1024-800",46021:"Skein1024-808",46022:"Skein1024-816",46023:"Skein1024-824",46024:"Skein1024-832",46025:"Skein1024-840",46026:"Skein1024-848",46027:"Skein1024-856",46028:"Skein1024-864",46029:"Skein1024-872",46030:"Skein1024-880",46031:"Skein1024-888",46032:"Skein1024-896",46033:"Skein1024-904",46034:"Skein1024-912",46035:"Skein1024-920",46036:"Skein1024-928",46037:"Skein1024-936",46038:"Skein1024-944",46039:"Skein1024-952",46040:"Skein1024-960",46041:"Skein1024-968",46042:"Skein1024-976",46043:"Skein1024-984",46044:"Skein1024-992",46045:"Skein1024-1000",46046:"Skein1024-1008",46047:"Skein1024-1016",46048:"Skein1024-1024"}),e.defaultLengths=Object.freeze({17:20,18:32,19:64,86:32,23:28,22:32,21:48,20:64,24:32,25:64,26:28,27:32,28:48,29:64,34:32,45569:1,45570:2,45571:3,45572:4,45573:5,45574:6,45575:7,45576:8,45577:9,45578:10,45579:11,45580:12,45581:13,45582:14,45583:15,45584:16,45585:17,45586:18,45587:19,45588:20,45589:21,45590:22,45591:23,45592:24,45593:25,45594:26,45595:27,45596:28,45597:29,45598:30,45599:31,45600:32,45601:33,45602:34,45603:35,45604:36,45605:37,45606:38,45607:39,45608:40,45609:41,45610:42,45611:43,45612:44,45613:45,45614:46,45615:47,45616:48,45617:49,45618:50,45619:51,45620:52,45621:53,45622:54,45623:55,45624:56,45625:57,45626:58,45627:59,45628:60,45629:61,45630:62,45631:63,45632:64,45633:1,45634:2,45635:3,45636:4,45637:5,45638:6,45639:7,45640:8,45641:9,45642:10,45643:11,45644:12,45645:13,45646:14,45647:15,45648:16,45649:17,45650:18,45651:19,45652:20,45653:21,45654:22,45655:23,45656:24,45657:25,45658:26,45659:27,45660:28,45661:29,45662:30,45663:31,45664:32,45825:1,45826:2,45827:3,45828:4,45829:5,45830:6,45831:7,45832:8,45833:9,45834:10,45835:11,45836:12,45837:13,45838:14,45839:15,45840:16,45841:17,45842:18,45843:19,45844:20,45845:21,45846:22,45847:23,45848:24,45849:25,45850:26,45851:27,45852:28,45853:29,45854:30,45855:31,45856:32,45857:1,45858:2,45859:3,45860:4,45861:5,45862:6,45863:7,45864:8,45865:9,45866:10,45867:11,45868:12,45869:13,45870:14,45871:15,45872:16,45873:17,45874:18,45875:19,45876:20,45877:21,45878:22,45879:23,45880:24,45881:25,45882:26,45883:27,45884:28,45885:29,45886:30,45887:31,45888:32,45889:33,45890:34,45891:35,45892:36,45893:37,45894:38,45895:39,45896:40,45897:41,45898:42,45899:43,45900:44,45901:45,45902:46,45903:47,45904:48,45905:49,45906:50,45907:51,45908:52,45909:53,45910:54,45911:55,45912:56,45913:57,45914:58,45915:59,45916:60,45917:61,45918:62,45919:63,45920:64,45921:1,45922:2,45923:3,45924:4,45925:5,45926:6,45927:7,45928:8,45929:9,45930:10,45931:11,45932:12,45933:13,45934:14,45935:15,45936:16,45937:17,45938:18,45939:19,45940:20,45941:21,45942:22,45943:23,45944:24,45945:25,45946:26,45947:27,45948:28,45949:29,45950:30,45951:31,45952:32,45953:33,45954:34,45955:35,45956:36,45957:37,45958:38,45959:39,45960:40,45961:41,45962:42,45963:43,45964:44,45965:45,45966:46,45967:47,45968:48,45969:49,45970:50,45971:51,45972:52,45973:53,45974:54,45975:55,45976:56,45977:57,45978:58,45979:59,45980:60,45981:61,45982:62,45983:63,45984:64,45985:65,45986:66,45987:67,45988:68,45989:69,45990:70,45991:71,45992:72,45993:73,45994:74,45995:75,45996:76,45997:77,45998:78,45999:79,46e3:80,46001:81,46002:82,46003:83,46004:84,46005:85,46006:86,46007:87,46008:88,46009:89,46010:90,46011:91,46012:92,46013:93,46014:94,46015:95,46016:96,46017:97,46018:98,46019:99,46020:100,46021:101,46022:102,46023:103,46024:104,46025:105,46026:106,46027:107,46028:108,46029:109,46030:110,46031:111,46032:112,46033:113,46034:114,46035:115,46036:116,46037:117,46038:118,46039:119,46040:120,46041:121,46042:122,46043:123,46044:124,46045:125,46046:126,46047:127,46048:128})},function(t,e,r){"use strict";var n=r(2).Buffer,i=r(321);(e=t.exports=a).encode=function(t,e){var r=s(t);return a(r.name,n.from(r.encode(e)))},e.decode=function(t){n.isBuffer(t)&&(t=t.toString());var e=t.substring(0,1);"string"==typeof(t=t.substring(1,t.length))&&(t=n.from(t));var r=s(e);return n.from(r.decode(t.toString()))},e.isEncoded=function(t){n.isBuffer(t)&&(t=t.toString());if("[object String]"!==Object.prototype.toString.call(t))return!1;var e=t.substring(0,1);try{return s(e).name}catch(t){return!1}},e.names=Object.freeze(Object.keys(i.names)),e.codes=Object.freeze(Object.keys(i.codes));var o=new Error("Unsupported encoding");function a(t,e){if(!e)throw new Error("requires an encoded buffer");var r=s(t),i=n.from(r.code);return function(t,e){s(t).decode(e.toString())}(r.name,e),n.concat([i,e])}function s(t){var e;if(i.names[t])e=i.names[t];else{if(!i.codes[t])throw o;e=i.codes[t]}if(!e.isImplemented())throw new Error("Base "+t+" is not implemented yet");return e}},function(t,e,r){"use strict";var n=r(322),i=r(141),o=r(323),a=r(324),s=r(325),u=[["base1","1","","1"],["base2","0",i,"01"],["base8","7",i,"01234567"],["base10","9",i,"0123456789"],["base16","f",o,"0123456789abcdef"],["base32","b",a,"abcdefghijklmnopqrstuvwxyz234567"],["base32pad","c",a,"abcdefghijklmnopqrstuvwxyz234567="],["base32hex","v",a,"0123456789abcdefghijklmnopqrstuv"],["base32hexpad","t",a,"0123456789abcdefghijklmnopqrstuv="],["base32z","h",a,"ybndrfg8ejkmcpqxot1uwisza345h769"],["base58flickr","Z",i,"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"],["base58btc","z",i,"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"],["base64","m",s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"],["base64pad","M",s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],["base64url","u",s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"],["base64urlpad","U",s,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_="]],f=u.reduce((function(t,e){return t[e[0]]=new n(e[0],e[1],e[2],e[3]),t}),{}),c=u.reduce((function(t,e){return t[e[1]]=f[e[0]],t}),{});t.exports={names:f,codes:c}},function(t,e,r){"use strict";var n=r(0),i=n(r(6)),o=n(r(8)),a=function(){function t(e,r,n,o){(0,i.default)(this,t),this.name=e,this.code=r,this.alphabet=o,n&&o&&(this.engine=n(o))}return(0,o.default)(t,[{key:"encode",value:function(t){return this.engine.encode(t)}},{key:"decode",value:function(t){return this.engine.decode(t)}},{key:"isImplemented",value:function(){return this.engine}}]),t}();t.exports=a},function(t,e,r){"use strict";function n(t,e){var r;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=5;)s+=e[a>>>o-5&31],o-=5;if(o>0&&(s+=e[a<<5-o&31]),i)for(;s.length%8!=0;)s+="=";return s}t.exports=function(t){return{encode:function(e){return o("string"==typeof e?Uint8Array.from(e):e,t)},decode:function(e){var r,i=n(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(t.indexOf(o)<0)throw new Error("invalid base32 character")}}catch(t){i.e(t)}finally{i.f()}return function(t,e){for(var r=(t=t.replace(new RegExp("=","g"),"")).length,n=0,i=0,o=0,a=new Uint8Array(5*r/8|0),s=0;s=8&&(a[o++]=i>>>n-8&255,n-=8);return a.buffer}(e,t)}}}},function(t,e,r){"use strict";function n(t,e){var r;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);"Object"===r&&t.constructor&&(r=t.constructor.name);if("Map"===r||"Set"===r)return Array.from(t);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(t,e)}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r-1,r=t.indexOf("-")>-1&&t.indexOf("_")>-1;return{encode:function(t){var n="";n="string"==typeof t?o.from(t).toString("base64"):t.toString("base64"),r&&(n=n.replace(/\+/g,"-").replace(/\//g,"_"));var i=n.indexOf("=");return i>0&&!e&&(n=n.substring(0,i)),n},decode:function(e){var r,i=n(e);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(t.indexOf(a)<0)throw new Error("invalid base64 character")}}catch(t){i.e(t)}finally{i.f()}return o.from(e,"base64")}}}},function(t,e,r){"use strict";var n=r(2).Buffer,i=r(44),o=r(327),a=r(328),s=r(142);(e=t.exports).addPrefix=function(t,e){var r;if(n.isBuffer(t))r=s.varintBufferEncode(t);else{if(!a[t])throw new Error("multicodec not recognized");r=a[t]}return n.concat([r,e])},e.rmPrefix=function(t){return i.decode(t),t.slice(i.decode.bytes)},e.getCodec=function(t){var e=i.decode(t),r=o.get(e);if(void 0===r)throw new Error("Code ".concat(e," not found"));return r},e.getName=function(t){return o.get(t)},e.getNumber=function(t){var e=a[t];if(void 0===e)throw new Error("Codec `"+t+"` not found");return s.varintBufferDecode(e)[0]},e.getCode=function(t){return i.decode(t)},e.getCodeVarint=function(t){var e=a[t];if(void 0===e)throw new Error("Codec `"+t+"` not found");return e},e.getVarint=function(t){return i.encode(t)};var u=r(329);Object.assign(e,u),e.print=r(330)},function(t,e,r){"use strict";var n=r(46),i=new Map;for(var o in n){var a=n[o];i.set(a,o)}t.exports=Object.freeze(i)},function(t,e,r){"use strict";var n=r(46),i=r(142).varintEncode,o={};for(var a in n){var s=n[a];o[a]=i(s)}t.exports=Object.freeze(o)},function(t,e,r){"use strict";for(var n=r(0)(r(45)),i=r(46),o={},a=0,s=Object.entries(i);a>1),"0x","0x"],o=e.slice(0,6).concat(i),a=c.encode(o);return u.recover(f.keccak256(a),r)},w.prototype.hashMessage=function(t){var e=b.isHexStrict(t)?t:b.utf8ToHex(t),r=b.hexToBytes(e),i=n.from(r),o="Ethereum Signed Message:\n"+r.length,a=n.from(o),s=n.concat([a,i]);return f.keccak256s(s)},w.prototype.sign=function(t,e){if(e.startsWith("0x")||(e="0x"+e),66!==e.length)throw new Error("Private key must be 32 bytes long");var r=this.hashMessage(t),n=u.sign(r,e),i=u.decodeSignature(n);return{message:t,messageHash:r,v:i[0],r:i[1],s:i[2],signature:n}},w.prototype.recover=function(t,e,r){var n=[].slice.apply(arguments);return o.isObject(t)?this.recover(t.messageHash,u.encodeSignature([t.v,t.r,t.s]),!0):(r||(t=this.hashMessage(t)),n.length>=4?(r=n.slice(-1)[0],r=!!o.isBoolean(r)&&!!r,this.recover(t,u.encodeSignature(n.slice(1,4)),r)):u.recover(t,e))},w.prototype.decrypt=function(t,e,r){if(!o.isString(e))throw new Error("No password given.");var a,s,u=o.isObject(t)?t:JSON.parse(r?t.toLowerCase():t);if(3!==u.version)throw new Error("Not a valid V3 wallet");if("scrypt"===u.crypto.kdf)s=u.crypto.kdfparams,a=l.syncScrypt(n.from(e),n.from(s.salt,"hex"),s.n,s.r,s.p,s.dklen);else{if("pbkdf2"!==u.crypto.kdf)throw new Error("Unsupported key derivation scheme");if("hmac-sha256"!==(s=u.crypto.kdfparams).prf)throw new Error("Unsupported parameters to PBKDF2");a=d.pbkdf2Sync(n.from(e),n.from(s.salt,"hex"),s.c,s.dklen,"sha256")}var f=n.from(u.crypto.ciphertext,"hex");if(b.sha3(n.from([].concat((0,i.default)(a.slice(16,32)),(0,i.default)(f)))).replace("0x","")!==u.crypto.mac)throw new Error("Key derivation failed - possibly wrong password");var c=d.createDecipheriv(u.crypto.cipher,a.slice(0,16),n.from(u.crypto.cipherparams.iv,"hex")),h="0x"+n.from([].concat((0,i.default)(c.update(f)),(0,i.default)(c.final()))).toString("hex");return this.privateKeyToAccount(h,!0)},w.prototype.encrypt=function(t,e,r){var o,a=this.privateKeyToAccount(t,!0),s=(r=r||{}).salt||d.randomBytes(32),u=r.iv||d.randomBytes(16),f=r.kdf||"scrypt",c={dklen:r.dklen||32,salt:s.toString("hex")};if("pbkdf2"===f)c.c=r.c||262144,c.prf="hmac-sha256",o=d.pbkdf2Sync(n.from(e),n.from(c.salt,"hex"),c.c,c.dklen,"sha256");else{if("scrypt"!==f)throw new Error("Unsupported kdf");c.n=r.n||8192,c.r=r.r||8,c.p=r.p||1,o=l.syncScrypt(n.from(e),n.from(c.salt,"hex"),c.n,c.r,c.p,c.dklen)}var h=d.createCipheriv(r.cipher||"aes-128-ctr",o.slice(0,16),u);if(!h)throw new Error("Unsupported cipher");var m=n.from([].concat((0,i.default)(h.update(n.from(a.privateKey.replace("0x",""),"hex"))),(0,i.default)(h.final()))),y=b.sha3(n.from([].concat((0,i.default)(o.slice(16,32)),(0,i.default)(m)))).replace("0x","");return{version:3,id:p.v4({random:r.uuid||d.randomBytes(16)}),address:a.address.toLowerCase().replace("0x",""),crypto:{ciphertext:m.toString("hex"),cipherparams:{iv:u.toString("hex")},cipher:r.cipher||"aes-128-ctr",kdf:f,kdfparams:c,mac:y.toString("hex")}}},_.prototype._findSafeIndex=function(t){return t=t||0,o.has(this,t)?this._findSafeIndex(t+1):t},_.prototype._currentIndexes=function(){return Object.keys(this).map((function(t){return parseInt(t)})).filter((function(t){return t<9e20}))},_.prototype.create=function(t,e){for(var r=0;r7?t[n+2].toUpperCase():t[n+2];return r},d=function(t){var r=new e(t.slice(2),"hex"),n="0x"+s.keyFromPrivate(r).getPublic(!1,"hex").slice(2),i=f(n);return{address:h("0x"+i.slice(-40)),privateKey:t}},l=function(t){var e=(0,n.default)(t,3),r=e[0],o=e[1],a=e[2];return i.flatten([o,a,r])},p=function(t){return[i.slice(64,i.length(t),t),i.slice(0,32,t),i.slice(32,64,t)]},b=function(t){return function(r,n){var a=s.keyFromPrivate(new e(n.slice(2),"hex")).sign(new e(r.slice(2),"hex"),{canonical:!0});return l([o.fromString(i.fromNumber(t+a.recoveryParam)),i.pad(32,i.fromNat("0x"+a.r.toString(16))),i.pad(32,i.fromNat("0x"+a.s.toString(16)))])}},m=b(27);t.exports={create:function(t){var e=f(i.concat(i.random(32),t||i.random(32))),r=i.concat(i.concat(i.random(32),e),i.random(32)),n=f(r);return d(n)},toChecksum:h,fromPrivate:d,sign:m,makeSigner:b,recover:function(t,r){var n=p(r),o={v:i.toNumber(n[0]),r:n[1].slice(2),s:n[2].slice(2)},a="0x"+s.recoverPubKey(new e(t.slice(2),"hex"),o,o.v<2?o.v:1-o.v%2).encode("hex",!1).slice(2),u=f(a);return h("0x"+u.slice(-40))},encodeSignature:l,decodeSignature:p}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";var n=function(t,e){for(var r=[],n=0;n>>2}function c(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,h=0;h<16;++h)r[h]=t.readInt32BE(4*h);for(;h<80;++h)r[h]=r[h-3]^r[h-8]^r[h-14]^r[h-16];for(var d=0;d<80;++d){var l=~~(d/20),p=0|((e=n)<<5|e>>>27)+c(l,i,o,s)+u+r[d]+a[l];u=s,s=o,o=f(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,r){"use strict";var n=r(3),i=r(37),o=r(4).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function f(t){return t<<5|t>>>27}function c(t){return t<<30|t>>>2}function h(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,d=0;d<16;++d)r[d]=t.readInt32BE(4*d);for(;d<80;++d)r[d]=(e=r[d-3]^r[d-8]^r[d-14]^r[d-16])<<1|e>>>31;for(var l=0;l<80;++l){var p=~~(l/20),b=f(n)+h(p,i,o,s)+u+r[l]+a[p]|0;u=s,s=o,o=c(i),i=n,n=b}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,r){"use strict";var n=r(3),i=r(145),o=r(37),a=r(4).Buffer,s=new Array(64);function u(){this.init(),this._w=s,o.call(this,64,56)}n(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=u},function(t,e,r){"use strict";var n=r(3),i=r(146),o=r(37),a=r(4).Buffer,s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}n(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(48);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},function(t,e,r){"use strict";var n=r(3),i=r(4).Buffer,o=r(28),a=i.alloc(128);function s(t,e){o.call(this,"digest"),"string"==typeof e&&(e=i.from(e)),this._alg=t,this._key=e,e.length>64?e=t(e):e.length<64&&(e=i.concat([e,a],64));for(var r=this._ipad=i.allocUnsafe(64),n=this._opad=i.allocUnsafe(64),s=0;s<64;s++)r[s]=54^e[s],n[s]=92^e[s];this._hash=[r]}n(s,o),s.prototype._update=function(t){this._hash.push(t)},s.prototype._final=function(){var t=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,t]))},t.exports=s},function(t,e,r){"use strict";t.exports=r(149)},function(t,e,r){"use strict";(function(e,n){var i,o=r(151),a=r(152),s=r(153),u=r(4).Buffer,f=e.crypto&&e.crypto.subtle,c={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},h=[];function d(t,e,r,n,i){return f.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((function(t){return f.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:i}},t,n<<3)})).then((function(t){return u.from(t)}))}t.exports=function(t,r,l,p,b,m){"function"==typeof b&&(m=b,b=void 0);var y=c[(b=b||"sha1").toLowerCase()];if(!y||"function"!=typeof e.Promise)return n.nextTick((function(){var e;try{e=s(t,r,l,p,b)}catch(t){return m(t)}m(null,e)}));if(o(t,r,l,p),"function"!=typeof m)throw new Error("No callback provided to pbkdf2");u.isBuffer(t)||(t=u.from(t,a)),u.isBuffer(r)||(r=u.from(r,a)),function(t,e){t.then((function(t){n.nextTick((function(){e(null,t)}))}),(function(t){n.nextTick((function(){e(t)}))}))}(function(t){if(e.process&&!e.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==h[t])return h[t];var r=d(i=i||u.alloc(8),i,10,128,t).then((function(){return!0})).catch((function(){return!1}));return h[t]=r,r}(y).then((function(e){return e?d(t,r,l,p,y):s(t,r,l,p,b)})),m)}}).call(this,r(7),r(12))},function(t,e,r){"use strict";var n=r(355),i=r(88),o=r(89),a=r(370),s=r(65);function u(t,e,r){if(t=t.toLowerCase(),o[t])return i.createCipheriv(t,e,r);if(a[t])return new n({key:e,iv:r,mode:t});throw new TypeError("invalid suite type")}function f(t,e,r){if(t=t.toLowerCase(),o[t])return i.createDecipheriv(t,e,r);if(a[t])return new n({key:e,iv:r,mode:t,decrypt:!0});throw new TypeError("invalid suite type")}e.createCipher=e.Cipher=function(t,e){var r,n;if(t=t.toLowerCase(),o[t])r=o[t].key,n=o[t].iv;else{if(!a[t])throw new TypeError("invalid suite type");r=8*a[t].key,n=a[t].iv}var i=s(e,!1,r,n);return u(t,i.key,i.iv)},e.createCipheriv=e.Cipheriv=u,e.createDecipher=e.Decipher=function(t,e){var r,n;if(t=t.toLowerCase(),o[t])r=o[t].key,n=o[t].iv;else{if(!a[t])throw new TypeError("invalid suite type");r=8*a[t].key,n=a[t].iv}var i=s(e,!1,r,n);return f(t,i.key,i.iv)},e.createDecipheriv=e.Decipheriv=f,e.listCiphers=e.getCiphers=function(){return Object.keys(a).concat(i.getCiphers())}},function(t,e,r){"use strict";var n=r(28),i=r(87),o=r(3),a=r(4).Buffer,s={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function u(t){n.call(this);var e,r=t.mode.toLowerCase(),i=s[r];e=t.decrypt?"decrypt":"encrypt";var o=t.key;a.isBuffer(o)||(o=a.from(o)),"des-ede"!==r&&"des-ede-cbc"!==r||(o=a.concat([o,o.slice(0,8)]));var u=t.iv;a.isBuffer(u)||(u=a.from(u)),this._des=i.create({key:o,iv:u,type:e})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],t.exports=u,o(u,n),u.prototype._update=function(t){return a.from(this._des.update(t))},u.prototype._final=function(){return a.from(this._des.final())}},function(t,e,r){"use strict";e.readUInt32BE=function(t,e){return(t[0+e]<<24|t[1+e]<<16|t[2+e]<<8|t[3+e])>>>0},e.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},e.ip=function(t,e,r,n){for(var i=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1}r[n+0]=i>>>0,r[n+1]=o>>>0},e.rip=function(t,e,r,n){for(var i=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)i<<=1,i|=e>>>s+a&1,i<<=1,i|=t>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=e>>>s+a&1,o<<=1,o|=t>>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.pc1=function(t,e,r,n){for(var i=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.r28shl=function(t,e){return t<>>28-e};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,r,i){for(var o=0,a=0,s=n.length>>>1,u=0;u>>n[u]&1;for(u=s;u>>n[u]&1;r[i+0]=o>>>0,r[i+1]=a>>>0},e.expand=function(t,e,r){var n=0,i=0;n=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=t>>>o&63;for(o=11;o>=3;o-=4)i|=t>>>o&63,i<<=6;i|=(31&t)<<1|t>>>31,e[r+0]=n>>>0,e[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var r=0,n=0;n<4;n++){r<<=4,r|=i[64*n+(t>>>18-6*n&63)]}for(n=0;n<4;n++){r<<=4,r|=i[256+64*n+(e>>>18-6*n&63)]}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,r=0;r>>o[r]&1;return e>>>0},e.padSplit=function(t,e,r){for(var n=t.toString(2);n.length0;n--)e+=this._buffer(t,e),r+=this._flushBuffer(i,r);return e+=this._buffer(t,e),i},i.prototype.final=function(t){var e,r;return t&&(e=this.update(t)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(r):r},i.prototype._pad=function(t,e){if(0===e)return!1;for(;e>>1];r=a.r28shl(r,s),i=a.r28shl(i,s),a.pc2(r,i,t.keys,o)}},f.prototype._update=function(t,e,r,n){var i=this._desState,o=a.readUInt32BE(t,e),s=a.readUInt32BE(t,e+4);a.ip(o,s,i.tmp,0),o=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,o,s,i.tmp,0):this._decrypt(i,o,s,i.tmp,0),o=i.tmp[0],s=i.tmp[1],a.writeUInt32BE(r,o,n),a.writeUInt32BE(r,s,n+4)},f.prototype._pad=function(t,e){for(var r=t.length-e,n=e;n>>0,o=d}a.rip(s,o,n,i)},f.prototype._decrypt=function(t,e,r,n,i){for(var o=r,s=e,u=t.keys.length-2;u>=0;u-=2){var f=t.keys[u],c=t.keys[u+1];a.expand(o,t.tmp,0),f^=t.tmp[0],c^=t.tmp[1];var h=a.substitute(f,c),d=o;o=(s^a.permute(h))>>>0,s=d}a.rip(o,s,n,i)}},function(t,e,r){"use strict";var n=r(21),i=r(3),o={};function a(t){n.equal(t.length,8,"Invalid IV length"),this.iv=new Array(8);for(var e=0;e15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},d.prototype.flush=function(){for(var t=16-this.cache.length,e=o.allocUnsafe(t),r=-1;++r>a%8,t._prev=o(t._prev,r?n:i);return s}function o(t,e){var r=t.length,i=-1,o=n.allocUnsafe(t.length);for(t=n.concat([t,n.from([e])]);++i>7;return o}e.encrypt=function(t,e,r){for(var o=e.length,a=n.allocUnsafe(o),s=-1;++s>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function a(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}a.prototype.ghash=function(t){for(var e=-1;++e0;e--)n[e]=n[e]>>>1|(1&n[e-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=o(i)},a.prototype.update=function(t){var e;for(this.cache=n.concat([this.cache,t]);this.cache.length>=16;)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},a.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(o([0,t,0,e])),this.state},t.exports=a},function(t,e,r){"use strict";var n=r(157),i=r(4).Buffer,o=r(89),a=r(158),s=r(28),u=r(64),f=r(65);function c(t,e,r){s.call(this),this._cache=new h,this._last=void 0,this._cipher=new u.AES(e),this._prev=i.from(r),this._mode=t,this._autopadding=!0}function h(){this.cache=i.allocUnsafe(0)}function d(t,e,r){var s=o[t.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof r&&(r=i.from(r)),"GCM"!==s.mode&&r.length!==s.iv)throw new TypeError("invalid iv length "+r.length);if("string"==typeof e&&(e=i.from(e)),e.length!==s.key/8)throw new TypeError("invalid key length "+e.length);return"stream"===s.type?new a(s.module,e,r,!0):"auth"===s.type?new n(s.module,e,r,!0):new c(s.module,e,r)}r(3)(c,s),c.prototype._update=function(t){var e,r;this._cache.add(t);for(var n=[];e=this._cache.get(this._autopadding);)r=this._mode.decrypt(this,e),n.push(r);return i.concat(n)},c.prototype._final=function(){var t=this._cache.flush();if(this._autopadding)return function(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");var r=-1;for(;++r16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},h.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=function(t,e){var r=o[t.toLowerCase()];if(!r)throw new TypeError("invalid suite type");var n=f(e,!1,r.key,r.iv);return d(t,n.key,n.iv)},e.createDecipheriv=d},function(t,e,r){"use strict";e["des-ecb"]={key:8,iv:0},e["des-cbc"]=e.des={key:8,iv:8},e["des-ede3-cbc"]=e.des3={key:24,iv:8},e["des-ede3"]={key:24,iv:0},e["des-ede-cbc"]={key:16,iv:8},e["des-ede"]={key:16,iv:0}},function(t,e,r){"use strict";(function(t){var n=r(159),i=r(373),o=r(374);var a={binary:!0,hex:!0,base64:!0};e.DiffieHellmanGroup=e.createDiffieHellmanGroup=e.getDiffieHellman=function(e){var r=new t(i[e].prime,"hex"),n=new t(i[e].gen,"hex");return new o(r,n)},e.createDiffieHellman=e.DiffieHellman=function e(r,i,s,u){return t.isBuffer(i)||void 0===a[i]?e(r,"binary",i,s):(i=i||"binary",u=u||"binary",s=s||new t([2]),t.isBuffer(s)||(s=new t(s,u)),"number"==typeof r?new o(n(r,s),s,!0):(t.isBuffer(r)||(r=new t(r,i)),new o(r,s,!0)))}}).call(this,r(2).Buffer)},function(t,e){},function(t){t.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(t,e,r){"use strict";(function(e){var n=r(5),i=new(r(160)),o=new n(24),a=new n(11),s=new n(10),u=new n(3),f=new n(7),c=r(159),h=r(30);function d(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._pub=new n(t),this}function l(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._priv=new n(t),this}t.exports=b;var p={};function b(t,e,r){this.setGenerator(e),this.__prime=new n(t),this._prime=n.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=d,this.setPrivateKey=l):this._primeCode=8}function m(t,r){var n=new e(t.toArray());return r?n.toString(r):n}Object.defineProperty(b.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(t,e){var r=e.toString("hex"),n=[r,t.toString(16)].join("_");if(n in p)return p[n];var h,d=0;if(t.isEven()||!c.simpleSieve||!c.fermatTest(t)||!i.test(t))return d+=1,d+="02"===r||"05"===r?8:4,p[n]=d,d;switch(i.test(t.shrn(1))||(d+=2),r){case"02":t.mod(o).cmp(a)&&(d+=8);break;case"05":(h=t.mod(s)).cmp(u)&&h.cmp(f)&&(d+=8);break;default:d+=4}return p[n]=d,d}(this.__prime,this.__gen)),this._primeCode}}),b.prototype.generateKeys=function(){return this._priv||(this._priv=new n(h(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},b.prototype.computeSecret=function(t){var r=(t=(t=new n(t)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new e(r.toArray()),o=this.getPrime();if(i.length0&&r.ishrn(n),r}function h(t,r,i){var o,a;do{for(o=new e(0);8*o.length=0&&(a=e,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a:a,b:s}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),u=i.mul(r.b),f=o.mul(n.b);return{k1:t.sub(a).sub(s),k2:u.add(f).neg()}},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(e&&!o||!e&&o)&&(n=n.redNeg()),this.point(t,n)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},f.prototype.isInfinity=function(){return this.inf},f.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},f.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},f.prototype.getX=function(){return this.x.fromRed()},f.prototype.getY=function(){return this.y.fromRed()},f.prototype.mul=function(t){return t=new i(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},f.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},f.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},f.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},f.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},f.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(c,a.BasePoint),u.prototype.jpoint=function(t,e,r){return new c(this,t,e,r)},c.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},c.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},c.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(r.redMul(this.z)),s=n.redSub(i),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=s.redSqr(),c=f.redMul(s),h=n.redMul(f),d=u.redSqr().redIAdd(c).redISub(h).redISub(h),l=u.redMul(h.redISub(d)).redISub(o.redMul(c)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(d,l,p)},c.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),f=u.redMul(a),c=r.redMul(u),h=s.redSqr().redIAdd(f).redISub(c).redISub(c),d=s.redMul(c.redISub(h)).redISub(i.redMul(f)),l=this.z.redMul(a);return this.curve.jpoint(h,d,l)},c.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(t,e,r){"use strict";var n=r(5),i=r(3),o=r(67),a=r(22);function s(t){o.call(this,"mont",t),this.a=new n(t.a,16).toRed(this.red),this.b=new n(t.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(t,e,r){o.BasePoint.call(this,t,"projective"),null===e&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(e,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,o),t.exports=s,s.prototype.validate=function(t){var e=t.normalize().x,r=e.redSqr(),n=r.redMul(e).redAdd(r.redMul(this.a)).redAdd(e);return 0===n.redSqrt().redSqr().cmp(n)},i(u,o.BasePoint),s.prototype.decodePoint=function(t,e){return this.point(a.toArray(t,e),1)},s.prototype.point=function(t,e){return new u(this,t,e)},s.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(t,e){return new u(t,e[0],e[1]||t.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),r=t.redSub(e),n=t.redMul(e),i=r.redMul(e.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(t,e){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=t.x.redAdd(t.z),o=t.x.redSub(t.z).redMul(r),a=i.redMul(n),s=e.z.redMul(o.redAdd(a).redSqr()),u=e.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,u)},u.prototype.mul=function(t){for(var e=t.clone(),r=this,n=this.curve.point(null,null),i=[];0!==e.cmpn(0);e.iushrn(1))i.push(e.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(t,e,r){"use strict";var n=r(22),i=r(5),o=r(3),a=r(67),s=n.assert;function u(t){this.twisted=1!=(0|t.a),this.mOneA=this.twisted&&-1==(0|t.a),this.extended=this.mOneA,a.call(this,"edwards",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|t.c)}function f(t,e,r,n,o){a.BasePoint.call(this,t,"projective"),null===e&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,r,n){return this.point(t,e,r,n)},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),r=t.y.redSqr(),n=e.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(r)));return 0===n.cmp(i)},o(f,a.BasePoint),u.prototype.pointFromJSON=function(t){return f.fromJSON(this,t)},u.prototype.point=function(t,e,r,n){return new f(this,t,e,r,n)},f.fromJSON=function(t,e){return new f(t,e[0],e[1],e[2])},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},f.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),a=o.redSub(r),s=n.redSub(e),u=i.redMul(a),f=o.redMul(s),c=i.redMul(s),h=a.redMul(o);return this.curve.point(u,f,h,c)},f.prototype._projDbl=function(){var t,e,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=(f=this.curve._mulA(i)).redAdd(o);if(this.zOne)t=n.redSub(i).redSub(o).redMul(a.redSub(this.curve.two)),e=a.redMul(f.redSub(o)),r=a.redSqr().redSub(a).redSub(a);else{var s=this.z.redSqr(),u=a.redSub(s).redISub(s);t=n.redSub(i).redISub(o).redMul(u),e=a.redMul(f.redSub(o)),r=a.redMul(u)}}else{var f=i.redAdd(o);s=this.curve._mulC(this.z).redSqr(),u=f.redSub(s).redSub(s);t=this.curve._mulC(n.redISub(f)).redMul(u),e=this.curve._mulC(f).redMul(i.redISub(o)),r=f.redMul(u)}return this.curve.point(t,e,r)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},f.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),a=i.redSub(n),s=i.redAdd(n),u=r.redAdd(e),f=o.redMul(a),c=s.redMul(u),h=o.redMul(u),d=a.redMul(s);return this.curve.point(f,c,d,h)},f.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),u=i.redSub(s),f=i.redAdd(s),c=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),h=n.redMul(u).redMul(c);return this.curve.twisted?(e=n.redMul(f).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(f)):(e=n.redMul(f).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(f)),this.curve.point(h,e,r)},f.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},f.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},f.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},f.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},f.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},f.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()},f.prototype.getY=function(){return this.normalize(),this.y.fromRed()},f.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},f.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},f.prototype.toP=f.prototype.normalize,f.prototype.mixedAdd=f.prototype.add},function(t,e,r){"use strict";t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(5),o=r(383),a=r(22),s=r(92),u=r(90),f=a.assert,c=r(384),h=r(385);function d(t){if(!(this instanceof d))return new d(t);"string"==typeof t&&(f(s.hasOwnProperty(t),"Unknown curve "+t),t=s[t]),t instanceof s.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=d,d.prototype.keyPair=function(t){return new c(this,t)},d.prototype.keyFromPrivate=function(t,e){return c.fromPrivate(this,t,e)},d.prototype.keyFromPublic=function(t,e){return c.fromPublic(this,t,e)},d.prototype.genKeyPair=function(t){t||(t={});for(var e=new o({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||u(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new i(2));;){var a=new i(e.generate(r));if(!(a.cmp(n)>0))return a.iaddn(1),this.keyFromPrivate(a)}},d.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},d.prototype.sign=function(t,e,r,a){"object"===(0,n.default)(r)&&(a=r,r=null),a||(a={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new i(t,16));for(var s=this.n.byteLength(),u=e.getPrivate().toArray("be",s),f=t.toArray("be",s),c=new o({hash:this.hash,entropy:u,nonce:f,pers:a.pers,persEnc:a.persEnc||"utf8"}),d=this.n.sub(new i(1)),l=0;;l++){var p=a.k?a.k(l):new i(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var b=this.g.mul(p);if(!b.isInfinity()){var m=b.getX(),y=m.umod(this.n);if(0!==y.cmpn(0)){var v=p.invm(this.n).mul(y.mul(e.getPrivate()).iadd(t));if(0!==(v=v.umod(this.n)).cmpn(0)){var g=(b.getY().isOdd()?1:0)|(0!==m.cmp(y)?2:0);return a.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),g^=1),new h({r:y,s:v,recoveryParam:g})}}}}}},d.prototype.verify=function(t,e,r,n){t=this._truncateToN(new i(t,16)),r=this.keyFromPublic(r,n);var o=(e=new h(e,"hex")).r,a=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,u=a.invm(this.n),f=u.mul(t).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(f,r.getPublic(),c)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(f,r.getPublic(),c)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},d.prototype.recoverPubKey=function(t,e,r,n){f((3&r)===r,"The recovery param is more than two bits"),e=new h(e,n);var o=this.n,a=new i(t),s=e.r,u=e.s,c=1&r,d=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");s=d?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var l=e.r.invm(o),p=o.sub(a).mul(l).umod(o),b=u.mul(l).umod(o);return this.g.mulAdd(p,s,b)},d.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new h(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(t,e,r){"use strict";var n=r(60),i=r(161),o=r(21);function a(t){if(!(this instanceof a))return new a(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=i.toArray(t.entropy,t.entropyEnc||"hex"),r=i.toArray(t.nonce,t.nonceEnc||"hex"),n=i.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}t.exports=a,a.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},a.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length"}},function(t,e,r){"use strict";var n=r(5),i=r(22),o=i.assert;function a(t,e){if(t instanceof a)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new n(t.r,16),this.s=new n(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function u(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=e.place;o>>=0;return!(i<=127)&&(e.place=a,i)}function f(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}t.exports=a,a.prototype._importDER=function(t,e){t=i.toArray(t,e);var r=new s;if(48!==t[r.place++])return!1;var o=u(t,r);if(!1===o)return!1;if(o+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var a=u(t,r);if(!1===a)return!1;var f=t.slice(r.place,a+r.place);if(r.place+=a,2!==t[r.place++])return!1;var c=u(t,r);if(!1===c)return!1;if(t.length!==c+r.place)return!1;var h=t.slice(r.place,c+r.place);if(0===f[0]){if(!(128&f[1]))return!1;f=f.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new n(f),this.s=new n(h),this.recoveryParam=null,!0},a.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=f(e),r=f(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];c(n,e.length),(n=n.concat(e)).push(2),c(n,r.length);var o=n.concat(r),a=[48];return c(a,o.length),a=a.concat(o),i.encode(a,t)}},function(t,e,r){"use strict";var n=r(60),i=r(92),o=r(22),a=o.assert,s=o.parseBytes,u=r(387),f=r(388);function c(t){if(a("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof c))return new c(t);t=i[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=n.sha512}t.exports=c,c.prototype.sign=function(t,e){t=s(t);var r=this.keyFromSecret(e),n=this.hashInt(r.messagePrefix(),t),i=this.g.mul(n),o=this.encodePoint(i),a=this.hashInt(o,r.pubBytes(),t).mul(r.priv()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:o})},c.prototype.verify=function(t,e,r){t=s(t),e=this.makeSignature(e);var n=this.keyFromPublic(r),i=this.hashInt(e.Rencoded(),n.pubBytes(),t),o=this.g.mul(e.S());return e.R().add(n.pub().mul(i)).eq(o)},c.prototype.hashInt=function(){for(var t=this.hash(),e=0;e=e)throw new Error("invalid sig")}t.exports=function(t,r,u,f,c){var h=o(u);if("ec"===h.type){if("ecdsa"!==f&&"ecdsa/rsa"!==f)throw new Error("wrong public key type");return function(t,e,r){var n=a[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var o=new i(n),s=r.data.subjectPrivateKey.data;return o.verify(e,t,s)}(t,r,h)}if("dsa"===h.type){if("dsa"!==f)throw new Error("wrong public key type");return function(t,e,r){var i=r.data.p,a=r.data.q,u=r.data.g,f=r.data.pub_key,c=o.signature.decode(t,"der"),h=c.s,d=c.r;s(h,a),s(d,a);var l=n.mont(i),p=h.invm(a);return 0===u.toRed(l).redPow(new n(e).mul(p).mod(a)).fromRed().mul(f.toRed(l).redPow(d.mul(p).mod(a)).fromRed()).mod(i).mod(a).cmp(d)}(t,r,h)}if("rsa"!==f&&"ecdsa/rsa"!==f)throw new Error("wrong public key type");r=e.concat([c,r]);for(var d=h.modulus.byteLength(),l=[1],p=0;r.length+l.length+2r-d-2)throw new Error("message too long");var l=h.alloc(r-n-d-2),p=r-c-1,b=i(c),m=s(h.concat([f,l,h.alloc(1,1),e],p),a(b,p)),y=s(b,a(m,c));return new u(h.concat([h.alloc(1),y,m],r))}(p,e);else if(1===d)l=function(t,e,r){var n,o=e.length,a=t.modulus.byteLength();if(o>a-11)throw new Error("message too long");n=r?h.alloc(a-o-3,255):function(t){var e,r=h.allocUnsafe(t),n=0,o=i(2*t),a=0;for(;n=0)throw new Error("data too long for modulus")}return r?c(l,p):f(l,p)}},function(t,e,r){"use strict";var n=r(68),i=r(168),o=r(169),a=r(5),s=r(91),u=r(47),f=r(170),c=r(4).Buffer;t.exports=function(t,e,r){var h;h=t.padding?t.padding:r?1:4;var d,l=n(t),p=l.modulus.byteLength();if(e.length>p||new a(e).cmp(l.modulus)>=0)throw new Error("decryption error");d=r?f(new a(e),l):s(e,l);var b=c.alloc(p-d.length);if(d=c.concat([b,d],p),4===h)return function(t,e){var r=t.modulus.byteLength(),n=u("sha1").update(c.alloc(0)).digest(),a=n.length;if(0!==e[0])throw new Error("decryption error");var s=e.slice(1,a+1),f=e.slice(a+1),h=o(s,i(f,a)),d=o(f,i(h,r-a-1));if(function(t,e){t=c.from(t),e=c.from(e);var r=0,n=t.length;t.length!==e.length&&(r++,n=Math.min(t.length,e.length));var i=-1;for(;++i=e.length){o++;break}var a=e.slice(2,i-1);("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++;a.length<8&&o++;if(o)throw new Error("decryption error");return e.slice(i)}(0,d,r);if(3===h)return d;throw new Error("unknown padding")}},function(t,e,r){"use strict";(function(t,n){function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=r(4),a=r(30),s=o.Buffer,u=o.kMaxLength,f=t.crypto||t.msCrypto,c=Math.pow(2,32)-1;function h(t,e){if("number"!=typeof t||t!=t)throw new TypeError("offset must be a number");if(t>c||t<0)throw new TypeError("offset must be a uint32");if(t>u||t>e)throw new RangeError("offset out of range")}function d(t,e,r){if("number"!=typeof t||t!=t)throw new TypeError("size must be a number");if(t>c||t<0)throw new TypeError("size must be a uint32");if(t+e>r||t>u)throw new RangeError("buffer too small")}function l(t,e,r,i){if(n.browser){var o=t.buffer,s=new Uint8Array(o,e,r);return f.getRandomValues(s),i?void n.nextTick((function(){i(null,t)})):t}if(!i)return a(r).copy(t,e),t;a(r,(function(r,n){if(r)return i(r);n.copy(t,e),i(null,t)}))}f&&f.getRandomValues||!n.browser?(e.randomFill=function(e,r,n,i){if(!(s.isBuffer(e)||e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof r)i=r,r=0,n=e.length;else if("function"==typeof n)i=n,n=e.length-r;else if("function"!=typeof i)throw new TypeError('"cb" argument must be a function');return h(r,e.length),d(n,r,e.length),l(e,r,n,i)},e.randomFillSync=function(e,r,n){void 0===r&&(r=0);if(!(s.isBuffer(e)||e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');h(r,e.length),void 0===n&&(n=e.length-r);return d(n,r,e.length),l(e,r,n)}):(e.randomFill=i,e.randomFillSync=i)}).call(this,r(7),r(12))},function(t,e,r){"use strict";var n=r(5),i=r(83),o=function(t){return new n(t.slice(2),16)},a=function(t){var e="0x"+("0x"===t.slice(0,2)?new n(t.slice(2),16):new n(t,10)).toString("hex");return"0x0"===e?"0x":e},s=function(t){return"string"==typeof t?/^0x/.test(t)?t:"0x"+t:"0x"+new n(t).toString("hex")},u=function(t){return o(t).toNumber()},f=function(t){return function(e,r){return"0x"+o(e)[t](o(r)).toString("hex")}},c=f("add"),h=f("mul"),d=f("div"),l=f("sub");t.exports={toString:function(t){return o(t).toString(10)},fromString:a,toNumber:u,fromNumber:s,toEther:function(t){return u(d(t,a("10000000000")))/1e8},fromEther:function(t){return h(s(Math.floor(1e8*t)),a("10000000000"))},toUint256:function(t){return i.pad(32,t)},add:c,mul:h,div:d,sub:l}},function(t,e,r){"use strict";(function(e){!function(r){function n(t){var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),r=1779033703,n=3144134277,i=1013904242,o=2773480762,a=1359893119,s=2600822924,u=528734635,f=1541459225,c=new Uint32Array(64);function h(t){for(var h=0,d=t.length;d>=64;){var l=r,p=n,b=i,m=o,y=a,v=s,g=u,w=f,_=void 0,k=void 0,A=void 0,S=void 0,M=void 0;for(k=0;k<16;k++)A=h+4*k,c[k]=(255&t[A])<<24|(255&t[A+1])<<16|(255&t[A+2])<<8|255&t[A+3];for(k=16;k<64;k++)S=((_=c[k-2])>>>17|_<<15)^(_>>>19|_<<13)^_>>>10,M=((_=c[k-15])>>>7|_<<25)^(_>>>18|_<<14)^_>>>3,c[k]=(S+c[k-7]|0)+(M+c[k-16]|0)|0;for(k=0;k<64;k++)S=(((y>>>6|y<<26)^(y>>>11|y<<21)^(y>>>25|y<<7))+(y&v^~y&g)|0)+(w+(e[k]+c[k]|0)|0)|0,M=((l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10))+(l&p^l&b^p&b)|0,w=g,g=v,v=y,y=m+S|0,m=b,b=p,p=l,l=S+M|0;r=r+l|0,n=n+p|0,i=i+b|0,o=o+m|0,a=a+y|0,s=s+v|0,u=u+g|0,f=f+w|0,h+=64,d-=64}}h(t);var d,l=t.length%64,p=t.length/536870912|0,b=t.length<<3,m=l<56?56:120,y=t.slice(t.length-l,t.length);for(y.push(128),d=l+1;d>>24&255),y.push(p>>>16&255),y.push(p>>>8&255),y.push(p>>>0&255),y.push(b>>>24&255),y.push(b>>>16&255),y.push(b>>>8&255),y.push(b>>>0&255),h(y),[r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,f>>>24&255,f>>>16&255,f>>>8&255,f>>>0&255]}function i(t,e,r){t=t.length<=64?t:n(t);var i,o=64+e.length+4,a=new Array(o),s=new Array(64),u=[];for(i=0;i<64;i++)a[i]=54;for(i=0;i=o-4;t--){if(a[t]++,a[t]<=255)return;a[t]=0}}for(;r>=32;)f(),u=u.concat(n(s.concat(n(a)))),r-=32;return r>0&&(f(),u=u.concat(n(s.concat(n(a))).slice(0,r))),u}function o(t,e,r,n,i){var o;for(f(t,16*(2*r-1),i,0,16),o=0;o<2*r;o++)u(t,16*o,i,16),s(i,n),f(i,0,t,e+16*o,16);for(o=0;o>>32-e}function s(t,e){f(t,0,e,0,16);for(var r=8;r>0;r-=2)e[4]^=a(e[0]+e[12],7),e[8]^=a(e[4]+e[0],9),e[12]^=a(e[8]+e[4],13),e[0]^=a(e[12]+e[8],18),e[9]^=a(e[5]+e[1],7),e[13]^=a(e[9]+e[5],9),e[1]^=a(e[13]+e[9],13),e[5]^=a(e[1]+e[13],18),e[14]^=a(e[10]+e[6],7),e[2]^=a(e[14]+e[10],9),e[6]^=a(e[2]+e[14],13),e[10]^=a(e[6]+e[2],18),e[3]^=a(e[15]+e[11],7),e[7]^=a(e[3]+e[15],9),e[11]^=a(e[7]+e[3],13),e[15]^=a(e[11]+e[7],18),e[1]^=a(e[0]+e[3],7),e[2]^=a(e[1]+e[0],9),e[3]^=a(e[2]+e[1],13),e[0]^=a(e[3]+e[2],18),e[6]^=a(e[5]+e[4],7),e[7]^=a(e[6]+e[5],9),e[4]^=a(e[7]+e[6],13),e[5]^=a(e[4]+e[7],18),e[11]^=a(e[10]+e[9],7),e[8]^=a(e[11]+e[10],9),e[9]^=a(e[8]+e[11],13),e[10]^=a(e[9]+e[8],18),e[12]^=a(e[15]+e[14],7),e[13]^=a(e[12]+e[15],9),e[14]^=a(e[13]+e[12],13),e[15]^=a(e[14]+e[13],18);for(var n=0;n<16;++n)t[n]+=e[n]}function u(t,e,r,n){for(var i=0;i=256)return!1}return!0}function h(t,e){if("number"!=typeof t||t%1)throw new Error("invalid "+e);return t}function d(t,r,n,a,s,d,l){if(n=h(n,"N"),a=h(a,"r"),s=h(s,"p"),d=h(d,"dkLen"),0===n||0!=(n&n-1))throw new Error("N must be power of 2");if(n>2147483647/128/a)throw new Error("N too large");if(a>2147483647/128/s)throw new Error("r too large");if(!c(t))throw new Error("password must be an array or buffer");if(t=Array.prototype.slice.call(t),!c(r))throw new Error("salt must be an array or buffer");r=Array.prototype.slice.call(r);for(var p=i(t,r,128*s*a),b=new Uint32Array(32*s*a),m=0;mC&&(r=C);for(var c=0;cC&&(r=C);for(var m=0;m>0&255),p.push(b[R]>>8&255),p.push(b[R]>>16&255),p.push(b[R]>>24&255);var U=i(t,p,d);return l&&l(null,1,U),U}l&&B(e)};if(!l)for(;;){var R=T();if(null!=R)return R}T()}var l={scrypt:function(t,e,r,n,i,o,a){return new Promise((function(s,u){var f=0;a&&a(0),d(t,e,r,n,i,o,(function(t,e,r){if(t)u(t);else if(r)a&&1!==f&&a(1),s(new Uint8Array(r));else if(a&&e!==f)return f=e,a(e)}))}))},syncScrypt:function(t,e,r,n,i,o){return new Uint8Array(d(t,e,r,n,i,o))}};t.exports=l}()}).call(this,r(115).setImmediate)},function(t,e,r){"use strict";var n=r(411),i=r(412),o=i;o.v1=n,o.v4=i,t.exports=o},function(t,e,r){"use strict";var n,i,o=r(172),a=r(173),s=0,u=0;t.exports=function(t,e,r){var f=e&&r||0,c=e||[],h=(t=t||{}).node||n,d=void 0!==t.clockseq?t.clockseq:i;if(null==h||null==d){var l=o();null==h&&(h=n=[1|l[0],l[1],l[2],l[3],l[4],l[5]]),null==d&&(d=i=16383&(l[6]<<8|l[7]))}var p=void 0!==t.msecs?t.msecs:(new Date).getTime(),b=void 0!==t.nsecs?t.nsecs:u+1,m=p-s+(b-u)/1e4;if(m<0&&void 0===t.clockseq&&(d=d+1&16383),(m<0||p>s)&&void 0===t.nsecs&&(b=0),b>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");s=p,u=b,i=d;var y=(1e4*(268435455&(p+=122192928e5))+b)%4294967296;c[f++]=y>>>24&255,c[f++]=y>>>16&255,c[f++]=y>>>8&255,c[f++]=255&y;var v=p/4294967296*1e4&268435455;c[f++]=v>>>8&255,c[f++]=255&v,c[f++]=v>>>24&15|16,c[f++]=v>>>16&255,c[f++]=d>>>8|128,c[f++]=255&d;for(var g=0;g<6;++g)c[f+g]=h[g];return e||a(c)}},function(t,e,r){"use strict";var n=r(172),i=r(173);t.exports=function(t,e,r){var o=e&&r||0;"string"==typeof t&&(e="binary"===t?new Array(16):null,t=null);var a=(t=t||{}).random||(t.rng||n)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,e)for(var s=0;s<16;++s)e[o+s]=a[s];return e||i(a)}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(174);e.Transaction=n.default;var i=r(475);e.FakeTransaction=i.default},function(t,e,r){"use strict";var n=r(415),i=r(416),o=r(176);function a(t,e){return void 0===t?e:(n.isBoolean(t,o.COMPRESSED_TYPE_INVALID),t)}t.exports=function(t){return{privateKeyVerify:function(e){return n.isBuffer(e,o.EC_PRIVATE_KEY_TYPE_INVALID),32===e.length&&t.privateKeyVerify(e)},privateKeyExport:function(e,r){n.isBuffer(e,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(e,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),r=a(r,!0);var s=t.privateKeyExport(e,r);return i.privateKeyExport(e,s,r)},privateKeyImport:function(e){if(n.isBuffer(e,o.EC_PRIVATE_KEY_TYPE_INVALID),(e=i.privateKeyImport(e))&&32===e.length&&t.privateKeyVerify(e))return e;throw new Error(o.EC_PRIVATE_KEY_IMPORT_DER_FAIL)},privateKeyNegate:function(e){return n.isBuffer(e,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(e,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),t.privateKeyNegate(e)},privateKeyModInverse:function(e){return n.isBuffer(e,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(e,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),t.privateKeyModInverse(e)},privateKeyTweakAdd:function(e,r){return n.isBuffer(e,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(e,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),n.isBuffer(r,o.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,o.TWEAK_LENGTH_INVALID),t.privateKeyTweakAdd(e,r)},privateKeyTweakMul:function(e,r){return n.isBuffer(e,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(e,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),n.isBuffer(r,o.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,o.TWEAK_LENGTH_INVALID),t.privateKeyTweakMul(e,r)},publicKeyCreate:function(e,r){return n.isBuffer(e,o.EC_PRIVATE_KEY_TYPE_INVALID),n.isBufferLength(e,32,o.EC_PRIVATE_KEY_LENGTH_INVALID),r=a(r,!0),t.publicKeyCreate(e,r)},publicKeyConvert:function(e,r){return n.isBuffer(e,o.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(e,33,65,o.EC_PUBLIC_KEY_LENGTH_INVALID),r=a(r,!0),t.publicKeyConvert(e,r)},publicKeyVerify:function(e){return n.isBuffer(e,o.EC_PUBLIC_KEY_TYPE_INVALID),t.publicKeyVerify(e)},publicKeyTweakAdd:function(e,r,i){return n.isBuffer(e,o.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(e,33,65,o.EC_PUBLIC_KEY_LENGTH_INVALID),n.isBuffer(r,o.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,o.TWEAK_LENGTH_INVALID),i=a(i,!0),t.publicKeyTweakAdd(e,r,i)},publicKeyTweakMul:function(e,r,i){return n.isBuffer(e,o.EC_PUBLIC_KEY_TYPE_INVALID),n.isBufferLength2(e,33,65,o.EC_PUBLIC_KEY_LENGTH_INVALID),n.isBuffer(r,o.TWEAK_TYPE_INVALID),n.isBufferLength(r,32,o.TWEAK_LENGTH_INVALID),i=a(i,!0),t.publicKeyTweakMul(e,r,i)},publicKeyCombine:function(e,r){n.isArray(e,o.EC_PUBLIC_KEYS_TYPE_INVALID),n.isLengthGTZero(e,o.EC_PUBLIC_KEYS_LENGTH_INVALID);for(var i=0;i=r)throw RangeError(n)}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";var n=r(14).Buffer,i=r(417),o=n.from([48,129,211,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,133,48,129,130,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,33,2,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,36,3,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),a=n.from([48,130,1,19,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,165,48,129,162,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,65,4,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,72,58,218,119,38,163,196,101,93,164,251,252,14,17,8,168,253,23,180,72,166,133,84,25,156,71,208,143,251,16,212,184,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,68,3,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);e.privateKeyExport=function(t,e,r){var i=n.from(r?o:a);return t.copy(i,r?8:9),e.copy(i,r?181:214),i},e.privateKeyImport=function(t){var e=t.length,r=0;if(!(e2||e1?t[r+n-2]<<8:0);if(!(e<(r+=n)+i||e32||e1&&0===e[o]&&!(128&e[o+1]);--r,++o);for(var a=n.concat([n.from([0]),t.s]),s=33,u=0;s>1&&0===a[u]&&!(128&a[u+1]);--s,++u);return i.encode(e.slice(o),a.slice(u))},e.signatureImport=function(t){var e=n.alloc(32,0),r=n.alloc(32,0);try{var o=i.decode(t);if(33===o.r.length&&0===o.r[0]&&(o.r=o.r.slice(1)),o.r.length>32)throw new Error("R length is too long");if(33===o.s.length&&0===o.s[0]&&(o.s=o.s.slice(1)),o.s.length>32)throw new Error("S length is too long")}catch(t){return}return o.r.copy(e,32-o.r.length),o.s.copy(r,32-o.s.length),{r:e,s:r}},e.signatureImportLax=function(t){var e=n.alloc(32,0),r=n.alloc(32,0),i=t.length,o=0;if(48===t[o++]){var a=t[o++];if(!(128&a&&(o+=a-128)>i)&&2===t[o++]){var s=t[o++];if(128&s){if(o+(a=s-128)>i)return;for(;a>0&&0===t[o];o+=1,a-=1);for(s=0;a>0;o+=1,a-=1)s=(s<<8)+t[o]}if(!(s>i-o)){var u=o;if(o+=s,2===t[o++]){var f=t[o++];if(128&f){if(o+(a=f-128)>i)return;for(;a>0&&0===t[o];o+=1,a-=1);for(f=0;a>0;o+=1,a-=1)f=(f<<8)+t[o]}if(!(f>i-o)){var c=o;for(o+=f;s>0&&0===t[u];s-=1,u+=1);if(!(s>32)){var h=t.slice(u,u+s);for(h.copy(e,32-h.length);f>0&&0===t[c];f-=1,c+=1);if(!(f>32)){var d=t.slice(c,c+f);return d.copy(r,32-d.length),{r:e,s:r}}}}}}}}}},function(t,e,r){"use strict";var n=r(14).Buffer;t.exports={check:function(t){if(t.length<8)return!1;if(t.length>72)return!1;if(48!==t[0])return!1;if(t[1]!==t.length-2)return!1;if(2!==t[2])return!1;var e=t[3];if(0===e)return!1;if(5+e>=t.length)return!1;if(2!==t[4+e])return!1;var r=t[5+e];return 0!==r&&(6+e+r===t.length&&(!(128&t[4])&&(!(e>1&&0===t[4]&&!(128&t[5]))&&(!(128&t[e+6])&&!(r>1&&0===t[e+6]&&!(128&t[e+7]))))))},decode:function(t){if(t.length<8)throw new Error("DER sequence length is too short");if(t.length>72)throw new Error("DER sequence length is too long");if(48!==t[0])throw new Error("Expected DER sequence");if(t[1]!==t.length-2)throw new Error("DER sequence length is invalid");if(2!==t[2])throw new Error("Expected DER integer");var e=t[3];if(0===e)throw new Error("R length is zero");if(5+e>=t.length)throw new Error("R length is too long");if(2!==t[4+e])throw new Error("Expected DER integer (2)");var r=t[5+e];if(0===r)throw new Error("S length is zero");if(6+e+r!==t.length)throw new Error("S length is invalid");if(128&t[4])throw new Error("R value is negative");if(e>1&&0===t[4]&&!(128&t[5]))throw new Error("R value excessively padded");if(128&t[e+6])throw new Error("S value is negative");if(r>1&&0===t[e+6]&&!(128&t[e+7]))throw new Error("S value excessively padded");return{r:t.slice(4,4+e),s:t.slice(6+e)}},encode:function(t,e){var r=t.length,i=e.length;if(0===r)throw new Error("R length is zero");if(0===i)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(i>33)throw new Error("S length is too long");if(128&t[0])throw new Error("R value is negative");if(128&e[0])throw new Error("S value is negative");if(r>1&&0===t[0]&&!(128&t[1]))throw new Error("R value excessively padded");if(i>1&&0===e[0]&&!(128&e[1]))throw new Error("S value excessively padded");var o=n.allocUnsafe(6+r+i);return o[0]=48,o[1]=o.length-2,o[2]=2,o[3]=t.length,t.copy(o,4),o[4+r]=2,o[5+r]=e.length,e.copy(o,6+r),o}}},function(t,e,r){"use strict";var n=r(14).Buffer,i=r(177),o=r(15),a=r(428).ec,s=r(176),u=new a("secp256k1"),f=u.curve;function c(t){var e=t[0];switch(e){case 2:case 3:return 33!==t.length?null:function(t,e){var r=new o(e);if(r.cmp(f.p)>=0)return null;var n=(r=r.toRed(f.red)).redSqr().redIMul(r).redIAdd(f.b).redSqrt();return 3===t!==n.isOdd()&&(n=n.redNeg()),u.keyPair({pub:{x:r,y:n}})}(e,t.slice(1,33));case 4:case 6:case 7:return 65!==t.length?null:function(t,e,r){var n=new o(e),i=new o(r);if(n.cmp(f.p)>=0||i.cmp(f.p)>=0)return null;if(n=n.toRed(f.red),i=i.toRed(f.red),(6===t||7===t)&&i.isOdd()!==(7===t))return null;var a=n.redSqr().redIMul(n);return i.redSqr().redISub(a.redIAdd(f.b)).isZero()?u.keyPair({pub:{x:n,y:i}}):null}(e,t.slice(1,33),t.slice(33,65));default:return null}}e.privateKeyVerify=function(t){var e=new o(t);return e.cmp(f.n)<0&&!e.isZero()},e.privateKeyExport=function(t,e){var r=new o(t);if(r.cmp(f.n)>=0||r.isZero())throw new Error(s.EC_PRIVATE_KEY_EXPORT_DER_FAIL);return n.from(u.keyFromPrivate(t).getPublic(e,!0))},e.privateKeyNegate=function(t){var e=new o(t);return e.isZero()?n.alloc(32):f.n.sub(e).umod(f.n).toArrayLike(n,"be",32)},e.privateKeyModInverse=function(t){var e=new o(t);if(e.cmp(f.n)>=0||e.isZero())throw new Error(s.EC_PRIVATE_KEY_RANGE_INVALID);return e.invm(f.n).toArrayLike(n,"be",32)},e.privateKeyTweakAdd=function(t,e){var r=new o(e);if(r.cmp(f.n)>=0)throw new Error(s.EC_PRIVATE_KEY_TWEAK_ADD_FAIL);if(r.iadd(new o(t)),r.cmp(f.n)>=0&&r.isub(f.n),r.isZero())throw new Error(s.EC_PRIVATE_KEY_TWEAK_ADD_FAIL);return r.toArrayLike(n,"be",32)},e.privateKeyTweakMul=function(t,e){var r=new o(e);if(r.cmp(f.n)>=0||r.isZero())throw new Error(s.EC_PRIVATE_KEY_TWEAK_MUL_FAIL);return r.imul(new o(t)),r.cmp(f.n)&&(r=r.umod(f.n)),r.toArrayLike(n,"be",32)},e.publicKeyCreate=function(t,e){var r=new o(t);if(r.cmp(f.n)>=0||r.isZero())throw new Error(s.EC_PUBLIC_KEY_CREATE_FAIL);return n.from(u.keyFromPrivate(t).getPublic(e,!0))},e.publicKeyConvert=function(t,e){var r=c(t);if(null===r)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);return n.from(r.getPublic(e,!0))},e.publicKeyVerify=function(t){return null!==c(t)},e.publicKeyTweakAdd=function(t,e,r){var i=c(t);if(null===i)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);if((e=new o(e)).cmp(f.n)>=0)throw new Error(s.EC_PUBLIC_KEY_TWEAK_ADD_FAIL);var a=f.g.mul(e).add(i.pub);if(a.isInfinity())throw new Error(s.EC_PUBLIC_KEY_TWEAK_ADD_FAIL);return n.from(a.encode(!0,r))},e.publicKeyTweakMul=function(t,e,r){var i=c(t);if(null===i)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);if((e=new o(e)).cmp(f.n)>=0||e.isZero())throw new Error(s.EC_PUBLIC_KEY_TWEAK_MUL_FAIL);return n.from(i.pub.mul(e).encode(!0,r))},e.publicKeyCombine=function(t,e){for(var r=new Array(t.length),i=0;i=0||r.cmp(f.n)>=0)throw new Error(s.ECDSA_SIGNATURE_PARSE_FAIL);var i=n.from(t);return 1===r.cmp(u.nh)&&f.n.sub(r).toArrayLike(n,"be",32).copy(i,32),i},e.signatureExport=function(t){var e=t.slice(0,32),r=t.slice(32,64);if(new o(e).cmp(f.n)>=0||new o(r).cmp(f.n)>=0)throw new Error(s.ECDSA_SIGNATURE_PARSE_FAIL);return{r:e,s:r}},e.signatureImport=function(t){var e=new o(t.r);e.cmp(f.n)>=0&&(e=new o(0));var r=new o(t.s);return r.cmp(f.n)>=0&&(r=new o(0)),n.concat([e.toArrayLike(n,"be",32),r.toArrayLike(n,"be",32)])},e.sign=function(t,e,r,i){if("function"==typeof r){var a=r;r=function(r){var u=a(t,e,null,i,r);if(!n.isBuffer(u)||32!==u.length)throw new Error(s.ECDSA_SIGN_FAIL);return new o(u)}}var c=new o(e);if(c.cmp(f.n)>=0||c.isZero())throw new Error(s.ECDSA_SIGN_FAIL);var h=u.sign(t,e,{canonical:!0,k:r,pers:i});return{signature:n.concat([h.r.toArrayLike(n,"be",32),h.s.toArrayLike(n,"be",32)]),recovery:h.recoveryParam}},e.verify=function(t,e,r){var n={r:e.slice(0,32),s:e.slice(32,64)},i=new o(n.r),a=new o(n.s);if(i.cmp(f.n)>=0||a.cmp(f.n)>=0)throw new Error(s.ECDSA_SIGNATURE_PARSE_FAIL);if(1===a.cmp(u.nh)||i.isZero()||a.isZero())return!1;var h=c(r);if(null===h)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);return u.verify(t,n,{x:h.pub.x,y:h.pub.y})},e.recover=function(t,e,r,i){var a={r:e.slice(0,32),s:e.slice(32,64)},c=new o(a.r),h=new o(a.s);if(c.cmp(f.n)>=0||h.cmp(f.n)>=0)throw new Error(s.ECDSA_SIGNATURE_PARSE_FAIL);try{if(c.isZero()||h.isZero())throw new Error;var d=u.recoverPubKey(t,a,r);return n.from(d.encode(!0,i))}catch(t){throw new Error(s.ECDSA_RECOVER_FAIL)}},e.ecdh=function(t,r){var n=e.ecdhUnsafe(t,r,!0);return i("sha256").update(n).digest()},e.ecdhUnsafe=function(t,e,r){var i=c(t);if(null===i)throw new Error(s.EC_PUBLIC_KEY_PARSE_FAIL);var a=new o(e);if(a.cmp(f.n)>=0||a.isZero())throw new Error(s.ECDH_FAIL);return n.from(i.pub.mul(a).encode(!0,r))}},function(t,e,r){"use strict";var n=r(11),i=r(178),o=r(14).Buffer,a=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function u(t,e){return t<>>32-e}function f(t,e,r,n,i,o,a){return u(t+(e&r|~e&n)+i+o|0,a)+e|0}function c(t,e,r,n,i,o,a){return u(t+(e&n|r&~n)+i+o|0,a)+e|0}function h(t,e,r,n,i,o,a){return u(t+(e^r^n)+i+o|0,a)+e|0}function d(t,e,r,n,i,o,a){return u(t+(r^(e|~n))+i+o|0,a)+e|0}n(s,i),s.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,o=this._d;r=f(r,n,i,o,t[0],3614090360,7),o=f(o,r,n,i,t[1],3905402710,12),i=f(i,o,r,n,t[2],606105819,17),n=f(n,i,o,r,t[3],3250441966,22),r=f(r,n,i,o,t[4],4118548399,7),o=f(o,r,n,i,t[5],1200080426,12),i=f(i,o,r,n,t[6],2821735955,17),n=f(n,i,o,r,t[7],4249261313,22),r=f(r,n,i,o,t[8],1770035416,7),o=f(o,r,n,i,t[9],2336552879,12),i=f(i,o,r,n,t[10],4294925233,17),n=f(n,i,o,r,t[11],2304563134,22),r=f(r,n,i,o,t[12],1804603682,7),o=f(o,r,n,i,t[13],4254626195,12),i=f(i,o,r,n,t[14],2792965006,17),r=c(r,n=f(n,i,o,r,t[15],1236535329,22),i,o,t[1],4129170786,5),o=c(o,r,n,i,t[6],3225465664,9),i=c(i,o,r,n,t[11],643717713,14),n=c(n,i,o,r,t[0],3921069994,20),r=c(r,n,i,o,t[5],3593408605,5),o=c(o,r,n,i,t[10],38016083,9),i=c(i,o,r,n,t[15],3634488961,14),n=c(n,i,o,r,t[4],3889429448,20),r=c(r,n,i,o,t[9],568446438,5),o=c(o,r,n,i,t[14],3275163606,9),i=c(i,o,r,n,t[3],4107603335,14),n=c(n,i,o,r,t[8],1163531501,20),r=c(r,n,i,o,t[13],2850285829,5),o=c(o,r,n,i,t[2],4243563512,9),i=c(i,o,r,n,t[7],1735328473,14),r=h(r,n=c(n,i,o,r,t[12],2368359562,20),i,o,t[5],4294588738,4),o=h(o,r,n,i,t[8],2272392833,11),i=h(i,o,r,n,t[11],1839030562,16),n=h(n,i,o,r,t[14],4259657740,23),r=h(r,n,i,o,t[1],2763975236,4),o=h(o,r,n,i,t[4],1272893353,11),i=h(i,o,r,n,t[7],4139469664,16),n=h(n,i,o,r,t[10],3200236656,23),r=h(r,n,i,o,t[13],681279174,4),o=h(o,r,n,i,t[0],3936430074,11),i=h(i,o,r,n,t[3],3572445317,16),n=h(n,i,o,r,t[6],76029189,23),r=h(r,n,i,o,t[9],3654602809,4),o=h(o,r,n,i,t[12],3873151461,11),i=h(i,o,r,n,t[15],530742520,16),r=d(r,n=h(n,i,o,r,t[2],3299628645,23),i,o,t[0],4096336452,6),o=d(o,r,n,i,t[7],1126891415,10),i=d(i,o,r,n,t[14],2878612391,15),n=d(n,i,o,r,t[5],4237533241,21),r=d(r,n,i,o,t[12],1700485571,6),o=d(o,r,n,i,t[3],2399980690,10),i=d(i,o,r,n,t[10],4293915773,15),n=d(n,i,o,r,t[1],2240044497,21),r=d(r,n,i,o,t[8],1873313359,6),o=d(o,r,n,i,t[15],4264355552,10),i=d(i,o,r,n,t[6],2734768916,15),n=d(n,i,o,r,t[13],1309151649,21),r=d(r,n,i,o,t[4],4149444226,6),o=d(o,r,n,i,t[11],3174756917,10),i=d(i,o,r,n,t[2],718787259,15),n=d(n,i,o,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s},function(t,e,r){"use strict";var n=r(2).Buffer,i=r(11),o=r(178),a=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],u=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],f=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],c=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function l(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(t,e){return t<>>32-e}function b(t,e,r,n,i,o,a,s){return p(t+(e^r^n)+o+a|0,s)+i|0}function m(t,e,r,n,i,o,a,s){return p(t+(e&r|~e&n)+o+a|0,s)+i|0}function y(t,e,r,n,i,o,a,s){return p(t+((e|~r)^n)+o+a|0,s)+i|0}function v(t,e,r,n,i,o,a,s){return p(t+(e&n|r&~n)+o+a|0,s)+i|0}function g(t,e,r,n,i,o,a,s){return p(t+(e^(r|~n))+o+a|0,s)+i|0}i(l,o),l.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,l=0|this._e,w=0|this._a,_=0|this._b,k=0|this._c,A=0|this._d,S=0|this._e,M=0;M<80;M+=1){var E,x;M<16?(E=b(r,n,i,o,l,t[s[M]],h[0],f[M]),x=g(w,_,k,A,S,t[u[M]],d[0],c[M])):M<32?(E=m(r,n,i,o,l,t[s[M]],h[1],f[M]),x=v(w,_,k,A,S,t[u[M]],d[1],c[M])):M<48?(E=y(r,n,i,o,l,t[s[M]],h[2],f[M]),x=y(w,_,k,A,S,t[u[M]],d[2],c[M])):M<64?(E=v(r,n,i,o,l,t[s[M]],h[3],f[M]),x=m(w,_,k,A,S,t[u[M]],d[3],c[M])):(E=g(r,n,i,o,l,t[s[M]],h[4],f[M]),x=b(w,_,k,A,S,t[u[M]],d[4],c[M])),r=l,l=o,o=p(i,10),i=n,n=E,w=S,S=A,A=p(k,10),k=_,_=x}var I=this._b+i+A|0;this._b=this._c+o+S|0,this._c=this._d+l+w|0,this._d=this._e+r+_|0,this._e=this._a+n+k|0,this._a=I},l.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=n.alloc?n.alloc(20):new n(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=l},function(t,e,r){"use strict";var n=t.exports=function(t){t=t.toLowerCase();var e=n[t];if(!e)throw new Error(t+" is not supported (we accept pull requests)");return new e};n.sha=r(422),n.sha1=r(423),n.sha224=r(424),n.sha256=r(179),n.sha384=r(425),n.sha512=r(180)},function(t,e,r){"use strict";var n=r(11),i=r(38),o=r(14).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function f(t){return t<<30|t>>>2}function c(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,h=0;h<16;++h)r[h]=t.readInt32BE(4*h);for(;h<80;++h)r[h]=r[h-3]^r[h-8]^r[h-14]^r[h-16];for(var d=0;d<80;++d){var l=~~(d/20),p=0|((e=n)<<5|e>>>27)+c(l,i,o,s)+u+r[d]+a[l];u=s,s=o,o=f(i),i=n,n=p}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,r){"use strict";var n=r(11),i=r(38),o=r(14).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function f(t){return t<<5|t>>>27}function c(t){return t<<30|t>>>2}function h(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e,r=this._w,n=0|this._a,i=0|this._b,o=0|this._c,s=0|this._d,u=0|this._e,d=0;d<16;++d)r[d]=t.readInt32BE(4*d);for(;d<80;++d)r[d]=(e=r[d-3]^r[d-8]^r[d-14]^r[d-16])<<1|e>>>31;for(var l=0;l<80;++l){var p=~~(l/20),b=f(n)+h(p,i,o,s)+u+r[l]+a[p]|0;u=s,s=o,o=c(i),i=n,n=b}this._a=n+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},function(t,e,r){"use strict";var n=r(11),i=r(179),o=r(38),a=r(14).Buffer,s=new Array(64);function u(){this.init(),this._w=s,o.call(this,64,56)}n(u,i),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t},t.exports=u},function(t,e,r){"use strict";var n=r(11),i=r(180),o=r(38),a=r(14).Buffer,s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}n(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(48);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},function(t,e,r){"use strict";var n=r(14).Buffer,i=r(34).Transform,o=r(55).StringDecoder;function a(t){i.call(this),this.hashMode="string"==typeof t,this.hashMode?this[t]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}r(11)(a,i),a.prototype.update=function(t,e,r){"string"==typeof t&&(t=n.from(t,e));var i=this._update(t);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)},a.prototype.setAutoPadding=function(){},a.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},a.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},a.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},a.prototype._transform=function(t,e,r){var n;try{this.hashMode?this._update(t):this.push(this._update(t))}catch(t){n=t}finally{r(n)}},a.prototype._flush=function(t){var e;try{this.push(this.__final())}catch(t){e=t}t(e)},a.prototype._finalOrDigest=function(t){var e=this.__final()||n.alloc(0);return t&&(e=this._toString(e,t,!0)),e},a.prototype._toString=function(t,e,r){if(this._decoder||(this._decoder=new o(e),this._encoding=e),this._encoding!==e)throw new Error("can't switch encodings");var n=this._decoder.write(t);return r&&(n+=this._decoder.end()),n},t.exports=a},function(t,e){},function(t,e,r){"use strict";var n=e;n.version=r(429).version,n.utils=r(23),n.rand=r(182),n.curve=r(183),n.curves=r(94),n.ec=r(441),n.eddsa=r(445)},function(t){t.exports=JSON.parse('{"_args":[["elliptic@6.5.3","/home/greg/code/github.com/ChainSafe/web3.js/packages/web3-eth-accounts"]],"_from":"elliptic@6.5.3","_id":"elliptic@6.5.3","_inBundle":false,"_integrity":"sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"elliptic@6.5.3","name":"elliptic","escapedName":"elliptic","rawSpec":"6.5.3","saveSpec":null,"fetchSpec":"6.5.3"},"_requiredBy":["/secp256k1"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz","_spec":"6.5.3","_where":"/home/greg/code/github.com/ChainSafe/web3.js/packages/web3-eth-accounts","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},"description":"EC cryptography","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"files":["lib"],"homepage":"https://github.com/indutny/elliptic","keywords":["EC","Elliptic","curve","Cryptography"],"license":"MIT","main":"lib/elliptic.js","name":"elliptic","repository":{"type":"git","url":"git+ssh://git@github.com/indutny/elliptic.git"},"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","test":"npm run lint && npm run unit","unit":"istanbul test _mocha --reporter=spec test/index.js","version":"grunt dist && git add dist/"},"version":"6.5.3"}')},function(t,e){},function(t,e,r){"use strict";var n=r(23),i=r(15),o=r(11),a=r(69),s=n.assert;function u(t){a.call(this,"short",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function f(t,e,r,n){a.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(e,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function c(t,e,r,n){a.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(e,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(u,a),t.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r;if(t.beta)e=new i(t.beta,16).toRed(this.red);else{var n=this._getEndoRoots(this.p);e=(e=n[0].cmp(n[1])<0?n[0]:n[1]).toRed(this.red)}if(t.lambda)r=new i(t.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(e))?r=o[0]:(r=o[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(e))))}return{beta:e,lambda:r,basis:t.basis?t.basis.map((function(t){return{a:new i(t.a,16),b:new i(t.b,16)}})):this._getEndoBasis(r)}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:i.mont(t),r=new i(2).toRed(e).redInvm(),n=r.redNeg(),o=new i(3).toRed(e).redNeg().redSqrt().redMul(r);return[n.redAdd(o).fromRed(),n.redSub(o).fromRed()]},u.prototype._getEndoBasis=function(t){for(var e,r,n,o,a,s,u,f,c,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=t,l=this.n.clone(),p=new i(1),b=new i(0),m=new i(0),y=new i(1),v=0;0!==d.cmpn(0);){var g=l.div(d);f=l.sub(g.mul(d)),c=m.sub(g.mul(p));var w=y.sub(g.mul(b));if(!n&&f.cmp(h)<0)e=u.neg(),r=p,n=f.neg(),o=c;else if(n&&2==++v)break;u=f,l=d,d=f,m=p,p=c,y=b,b=w}a=f.neg(),s=c;var _=n.sqr().add(o.sqr());return a.sqr().add(s.sqr()).cmp(_)>=0&&(a=e,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a:a,b:s}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),u=i.mul(r.b),f=o.mul(n.b);return{k1:t.sub(a).sub(s),k2:u.add(f).neg()}},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(e&&!o||!e&&o)&&(n=n.redNeg()),this.point(t,n)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},f.prototype.isInfinity=function(){return this.inf},f.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},f.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},f.prototype.getX=function(){return this.x.fromRed()},f.prototype.getY=function(){return this.y.fromRed()},f.prototype.mul=function(t){return t=new i(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},f.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},f.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},f.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},f.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},f.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(c,a.BasePoint),u.prototype.jpoint=function(t,e,r){return new c(this,t,e,r)},c.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},c.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},c.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(r.redMul(this.z)),s=n.redSub(i),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var f=s.redSqr(),c=f.redMul(s),h=n.redMul(f),d=u.redSqr().redIAdd(c).redISub(h).redISub(h),l=u.redMul(h.redISub(d)).redISub(o.redMul(c)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(d,l,p)},c.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),f=u.redMul(a),c=r.redMul(u),h=s.redSqr().redIAdd(f).redISub(c).redISub(c),d=s.redMul(c.redISub(h)).redISub(i.redMul(f)),l=this.z.redMul(a);return this.curve.jpoint(h,d,l)},c.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(t,e,r){"use strict";var n=r(15),i=r(11),o=r(69),a=r(23);function s(t){o.call(this,"mont",t),this.a=new n(t.a,16).toRed(this.red),this.b=new n(t.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(t,e,r){o.BasePoint.call(this,t,"projective"),null===e&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(e,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,o),t.exports=s,s.prototype.validate=function(t){var e=t.normalize().x,r=e.redSqr(),n=r.redMul(e).redAdd(r.redMul(this.a)).redAdd(e);return 0===n.redSqrt().redSqr().cmp(n)},i(u,o.BasePoint),s.prototype.decodePoint=function(t,e){return this.point(a.toArray(t,e),1)},s.prototype.point=function(t,e){return new u(this,t,e)},s.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(t,e){return new u(t,e[0],e[1]||t.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z).redSqr(),e=this.x.redSub(this.z).redSqr(),r=t.redSub(e),n=t.redMul(e),i=r.redMul(e.redAdd(this.curve.a24.redMul(r)));return this.curve.point(n,i)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(t,e){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=t.x.redAdd(t.z),o=t.x.redSub(t.z).redMul(r),a=i.redMul(n),s=e.z.redMul(o.redAdd(a).redSqr()),u=e.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,u)},u.prototype.mul=function(t){for(var e=t.clone(),r=this,n=this.curve.point(null,null),i=[];0!==e.cmpn(0);e.iushrn(1))i.push(e.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(r=r.diffAdd(n,this),n=n.dbl()):(n=r.diffAdd(n,this),r=r.dbl());return n},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(t,e,r){"use strict";var n=r(23),i=r(15),o=r(11),a=r(69),s=n.assert;function u(t){this.twisted=1!=(0|t.a),this.mOneA=this.twisted&&-1==(0|t.a),this.extended=this.mOneA,a.call(this,"edwards",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|t.c)}function f(t,e,r,n,o){a.BasePoint.call(this,t,"projective"),null===e&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,r,n){return this.point(t,e,r,n)},u.prototype.pointFromX=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){(t=new i(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),r=t.y.redSqr(),n=e.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(r)));return 0===n.cmp(i)},o(f,a.BasePoint),u.prototype.pointFromJSON=function(t){return f.fromJSON(this,t)},u.prototype.point=function(t,e,r,n){return new f(this,t,e,r,n)},f.fromJSON=function(t,e){return new f(t,e[0],e[1],e[2])},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},f.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),a=o.redSub(r),s=n.redSub(e),u=i.redMul(a),f=o.redMul(s),c=i.redMul(s),h=a.redMul(o);return this.curve.point(u,f,h,c)},f.prototype._projDbl=function(){var t,e,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=(f=this.curve._mulA(i)).redAdd(o);if(this.zOne)t=n.redSub(i).redSub(o).redMul(a.redSub(this.curve.two)),e=a.redMul(f.redSub(o)),r=a.redSqr().redSub(a).redSub(a);else{var s=this.z.redSqr(),u=a.redSub(s).redISub(s);t=n.redSub(i).redISub(o).redMul(u),e=a.redMul(f.redSub(o)),r=a.redMul(u)}}else{var f=i.redAdd(o);s=this.curve._mulC(this.z).redSqr(),u=f.redSub(s).redSub(s);t=this.curve._mulC(n.redISub(f)).redMul(u),e=this.curve._mulC(f).redMul(i.redISub(o)),r=f.redMul(u)}return this.curve.point(t,e,r)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},f.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),a=i.redSub(n),s=i.redAdd(n),u=r.redAdd(e),f=o.redMul(a),c=s.redMul(u),h=o.redMul(u),d=a.redMul(s);return this.curve.point(f,c,d,h)},f.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),u=i.redSub(s),f=i.redAdd(s),c=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),h=n.redMul(u).redMul(c);return this.curve.twisted?(e=n.redMul(f).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(f)):(e=n.redMul(f).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(f)),this.curve.point(h,e,r)},f.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},f.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},f.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},f.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},f.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},f.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},f.prototype.getX=function(){return this.normalize(),this.x.fromRed()},f.prototype.getY=function(){return this.normalize(),this.y.fromRed()},f.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},f.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},f.prototype.toP=f.prototype.normalize,f.prototype.mixedAdd=f.prototype.add},function(t,e,r){"use strict";e.sha1=r(435),e.sha224=r(436),e.sha256=r(185),e.sha384=r(437),e.sha512=r(186)},function(t,e,r){"use strict";var n=r(27),i=r(51),o=r(184),a=n.rotl32,s=n.sum32,u=n.sum32_5,f=o.ft_1,c=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}n.inherits(d,c),t.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;nthis.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;e0))return a.iaddn(1),this.keyFromPrivate(a)}},d.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},d.prototype.sign=function(t,e,r,a){"object"===(0,n.default)(r)&&(a=r,r=null),a||(a={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new i(t,16));for(var s=this.n.byteLength(),u=e.getPrivate().toArray("be",s),f=t.toArray("be",s),c=new o({hash:this.hash,entropy:u,nonce:f,pers:a.pers,persEnc:a.persEnc||"utf8"}),d=this.n.sub(new i(1)),l=0;;l++){var p=a.k?a.k(l):new i(c.generate(this.n.byteLength()));if(!((p=this._truncateToN(p,!0)).cmpn(1)<=0||p.cmp(d)>=0)){var b=this.g.mul(p);if(!b.isInfinity()){var m=b.getX(),y=m.umod(this.n);if(0!==y.cmpn(0)){var v=p.invm(this.n).mul(y.mul(e.getPrivate()).iadd(t));if(0!==(v=v.umod(this.n)).cmpn(0)){var g=(b.getY().isOdd()?1:0)|(0!==m.cmp(y)?2:0);return a.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),g^=1),new h({r:y,s:v,recoveryParam:g})}}}}}},d.prototype.verify=function(t,e,r,n){t=this._truncateToN(new i(t,16)),r=this.keyFromPublic(r,n);var o=(e=new h(e,"hex")).r,a=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s,u=a.invm(this.n),f=u.mul(t).umod(this.n),c=u.mul(o).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(f,r.getPublic(),c)).isInfinity()&&s.eqXToP(o):!(s=this.g.mulAdd(f,r.getPublic(),c)).isInfinity()&&0===s.getX().umod(this.n).cmp(o)},d.prototype.recoverPubKey=function(t,e,r,n){f((3&r)===r,"The recovery param is more than two bits"),e=new h(e,n);var o=this.n,a=new i(t),s=e.r,u=e.s,c=1&r,d=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");s=d?this.curve.pointFromX(s.add(this.curve.n),c):this.curve.pointFromX(s,c);var l=e.r.invm(o),p=o.sub(a).mul(l).umod(o),b=u.mul(l).umod(o);return this.g.mulAdd(p,s,b)},d.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new h(e,n)).recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},function(t,e,r){"use strict";var n=r(95),i=r(181),o=r(35);function a(t){if(!(this instanceof a))return new a(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=i.toArray(t.entropy,t.entropyEnc||"hex"),r=i.toArray(t.nonce,t.nonceEnc||"hex"),n=i.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}t.exports=a,a.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},a.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof e&&(n=r,r=e,e=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));for(var o=[];o.length"}},function(t,e,r){"use strict";var n=r(15),i=r(23),o=i.assert;function a(t,e){if(t instanceof a)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new n(t.r,16),this.s=new n(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function u(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=e.place;o>>=0;return!(i<=127)&&(e.place=a,i)}function f(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}t.exports=a,a.prototype._importDER=function(t,e){t=i.toArray(t,e);var r=new s;if(48!==t[r.place++])return!1;var o=u(t,r);if(!1===o)return!1;if(o+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var a=u(t,r);if(!1===a)return!1;var f=t.slice(r.place,a+r.place);if(r.place+=a,2!==t[r.place++])return!1;var c=u(t,r);if(!1===c)return!1;if(t.length!==c+r.place)return!1;var h=t.slice(r.place,c+r.place);if(0===f[0]){if(!(128&f[1]))return!1;f=f.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new n(f),this.s=new n(h),this.recoveryParam=null,!0},a.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=f(e),r=f(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];c(n,e.length),(n=n.concat(e)).push(2),c(n,r.length);var o=n.concat(r),a=[48];return c(a,o.length),a=a.concat(o),i.encode(a,t)}},function(t,e,r){"use strict";var n=r(95),i=r(94),o=r(23),a=o.assert,s=o.parseBytes,u=r(446),f=r(447);function c(t){if(a("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof c))return new c(t);t=i[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=n.sha512}t.exports=c,c.prototype.sign=function(t,e){t=s(t);var r=this.keyFromSecret(e),n=this.hashInt(r.messagePrefix(),t),i=this.g.mul(n),o=this.encodePoint(i),a=this.hashInt(o,r.pubBytes(),t).mul(r.priv()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:o})},c.prototype.verify=function(t,e,r){t=s(t),e=this.makeSignature(e);var n=this.keyFromPublic(r),i=this.hashInt(e.Rencoded(),n.pubBytes(),t),o=this.g.mul(e.S());return e.R().add(n.pub().mul(i)).eq(o)},c.prototype.hashInt=function(){for(var t=this.hash(),e=0;e=8?o+=t[a].toUpperCase():o+=t[a];return o},e.isValidChecksumAddress=function(t,r){return e.isValidAddress(t)&&e.toChecksumAddress(t,r)===t},e.generateAddress=function(e,r){e=s.toBuffer(e);var n=new a(r);return n.isZero()?u.rlphash([e,null]).slice(-20):u.rlphash([e,t.from(n.toArray())]).slice(-20)},e.generateAddress2=function(e,r,i){var o=s.toBuffer(e),a=s.toBuffer(r),f=s.toBuffer(i);return n(20===o.length),n(32===a.length),u.keccak256(t.concat([t.from("ff","hex"),o,a,u.keccak256(f)])).slice(-20)},e.isPrecompiled=function(t){var e=s.unpad(t);return 1===e.length&&e[0]>=1&&e[0]<=8},e.isValidPrivate=function(t){return o.privateKeyVerify(t)},e.isValidPublic=function(e,r){return void 0===r&&(r=!1),64===e.length?o.publicKeyVerify(t.concat([t.from([4]),e])):!!r&&o.publicKeyVerify(e)},e.pubToAddress=function(t,e){return void 0===e&&(e=!1),t=s.toBuffer(t),e&&64!==t.length&&(t=o.publicKeyConvert(t,!1).slice(1)),n(64===t.length),u.keccak(t).slice(-20)},e.publicToAddress=e.pubToAddress,e.privateToAddress=function(t){return e.publicToAddress(e.privateToPublic(t))},e.privateToPublic=function(t){return t=s.toBuffer(t),o.publicKeyCreate(t,!1).slice(1)},e.importPublic=function(t){return 64!==(t=s.toBuffer(t)).length&&(t=o.publicKeyConvert(t,!1).slice(1)),t}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";t.exports=r(452)(r(455))},function(t,e,r){"use strict";var n=r(453),i=r(454);t.exports=function(t){var e=n(t),r=i(t);return function(t,n){switch("string"==typeof t?t.toLowerCase():t){case"keccak224":return new e(1152,448,null,224,n);case"keccak256":return new e(1088,512,null,256,n);case"keccak384":return new e(832,768,null,384,n);case"keccak512":return new e(576,1024,null,512,n);case"sha3-224":return new e(1152,448,6,224,n);case"sha3-256":return new e(1088,512,6,256,n);case"sha3-384":return new e(832,768,6,384,n);case"sha3-512":return new e(576,1024,6,512,n);case"shake128":return new r(1344,256,31,n);case"shake256":return new r(1088,512,31,n);default:throw new Error("Invald algorithm: "+t)}}}},function(t,e,r){"use strict";var n=r(14).Buffer,i=r(34).Transform,o=r(11);t.exports=function(t){function e(e,r,n,o,a){i.call(this,a),this._rate=e,this._capacity=r,this._delimitedSuffix=n,this._hashBitLength=o,this._options=a,this._state=new t,this._state.initialize(e,r),this._finalized=!1}return o(e,i),e.prototype._transform=function(t,e,r){var n=null;try{this.update(t,e)}catch(t){n=t}r(n)},e.prototype._flush=function(t){var e=null;try{this.push(this.digest())}catch(t){e=t}t(e)},e.prototype.update=function(t,e){if(!n.isBuffer(t)&&"string"!=typeof t)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Digest already called");return n.isBuffer(t)||(t=n.from(t,e)),this._state.absorb(t),this},e.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0,this._delimitedSuffix&&this._state.absorbLastFewBits(this._delimitedSuffix);var e=this._state.squeeze(this._hashBitLength/8);return void 0!==t&&(e=e.toString(t)),this._resetState(),e},e.prototype._resetState=function(){return this._state.initialize(this._rate,this._capacity),this},e.prototype._clone=function(){var t=new e(this._rate,this._capacity,this._delimitedSuffix,this._hashBitLength,this._options);return this._state.copy(t._state),t._finalized=this._finalized,t},e}},function(t,e,r){"use strict";var n=r(14).Buffer,i=r(34).Transform,o=r(11);t.exports=function(t){function e(e,r,n,o){i.call(this,o),this._rate=e,this._capacity=r,this._delimitedSuffix=n,this._options=o,this._state=new t,this._state.initialize(e,r),this._finalized=!1}return o(e,i),e.prototype._transform=function(t,e,r){var n=null;try{this.update(t,e)}catch(t){n=t}r(n)},e.prototype._flush=function(){},e.prototype._read=function(t){this.push(this.squeeze(t))},e.prototype.update=function(t,e){if(!n.isBuffer(t)&&"string"!=typeof t)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Squeeze already called");return n.isBuffer(t)||(t=n.from(t,e)),this._state.absorb(t),this},e.prototype.squeeze=function(t,e){this._finalized||(this._finalized=!0,this._state.absorbLastFewBits(this._delimitedSuffix));var r=this._state.squeeze(t);return void 0!==e&&(r=r.toString(e)),r},e.prototype._resetState=function(){return this._state.initialize(this._rate,this._capacity),this},e.prototype._clone=function(){var t=new e(this._rate,this._capacity,this._delimitedSuffix,this._options);return this._state.copy(t._state),t._finalized=this._finalized,t},e}},function(t,e,r){"use strict";var n=r(14).Buffer,i=r(456);function o(){this.state=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.blockSize=null,this.count=0,this.squeezing=!1}o.prototype.initialize=function(t,e){for(var r=0;r<50;++r)this.state[r]=0;this.blockSize=t/8,this.count=0,this.squeezing=!1},o.prototype.absorb=function(t){for(var e=0;e>>this.count%4*8&255,this.count+=1,this.count===this.blockSize&&(i.p1600(this.state),this.count=0);return e},o.prototype.copy=function(t){for(var e=0;e<50;++e)t.state[e]=this.state[e];t.blockSize=this.blockSize,t.count=this.count,t.squeezing=this.squeezing},t.exports=o},function(t,e,r){"use strict";var n=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648];e.p1600=function(t){for(var e=0;e<24;++e){var r=t[0]^t[10]^t[20]^t[30]^t[40],i=t[1]^t[11]^t[21]^t[31]^t[41],o=t[2]^t[12]^t[22]^t[32]^t[42],a=t[3]^t[13]^t[23]^t[33]^t[43],s=t[4]^t[14]^t[24]^t[34]^t[44],u=t[5]^t[15]^t[25]^t[35]^t[45],f=t[6]^t[16]^t[26]^t[36]^t[46],c=t[7]^t[17]^t[27]^t[37]^t[47],h=t[8]^t[18]^t[28]^t[38]^t[48],d=t[9]^t[19]^t[29]^t[39]^t[49],l=h^(o<<1|a>>>31),p=d^(a<<1|o>>>31),b=t[0]^l,m=t[1]^p,y=t[10]^l,v=t[11]^p,g=t[20]^l,w=t[21]^p,_=t[30]^l,k=t[31]^p,A=t[40]^l,S=t[41]^p;l=r^(s<<1|u>>>31),p=i^(u<<1|s>>>31);var M=t[2]^l,E=t[3]^p,x=t[12]^l,I=t[13]^p,O=t[22]^l,P=t[23]^p,C=t[32]^l,B=t[33]^p,T=t[42]^l,R=t[43]^p;l=o^(f<<1|c>>>31),p=a^(c<<1|f>>>31);var U=t[4]^l,N=t[5]^p,j=t[14]^l,L=t[15]^p,F=t[24]^l,D=t[25]^p,q=t[34]^l,z=t[35]^p,H=t[44]^l,K=t[45]^p;l=s^(h<<1|d>>>31),p=u^(d<<1|h>>>31);var V=t[6]^l,G=t[7]^p,W=t[16]^l,Y=t[17]^p,$=t[26]^l,J=t[27]^p,Z=t[36]^l,X=t[37]^p,Q=t[46]^l,tt=t[47]^p;l=f^(r<<1|i>>>31),p=c^(i<<1|r>>>31);var et=t[8]^l,rt=t[9]^p,nt=t[18]^l,it=t[19]^p,ot=t[28]^l,at=t[29]^p,st=t[38]^l,ut=t[39]^p,ft=t[48]^l,ct=t[49]^p,ht=b,dt=m,lt=v<<4|y>>>28,pt=y<<4|v>>>28,bt=g<<3|w>>>29,mt=w<<3|g>>>29,yt=k<<9|_>>>23,vt=_<<9|k>>>23,gt=A<<18|S>>>14,wt=S<<18|A>>>14,_t=M<<1|E>>>31,kt=E<<1|M>>>31,At=I<<12|x>>>20,St=x<<12|I>>>20,Mt=O<<10|P>>>22,Et=P<<10|O>>>22,xt=B<<13|C>>>19,It=C<<13|B>>>19,Ot=T<<2|R>>>30,Pt=R<<2|T>>>30,Ct=N<<30|U>>>2,Bt=U<<30|N>>>2,Tt=j<<6|L>>>26,Rt=L<<6|j>>>26,Ut=D<<11|F>>>21,Nt=F<<11|D>>>21,jt=q<<15|z>>>17,Lt=z<<15|q>>>17,Ft=K<<29|H>>>3,Dt=H<<29|K>>>3,qt=V<<28|G>>>4,zt=G<<28|V>>>4,Ht=Y<<23|W>>>9,Kt=W<<23|Y>>>9,Vt=$<<25|J>>>7,Gt=J<<25|$>>>7,Wt=Z<<21|X>>>11,Yt=X<<21|Z>>>11,$t=tt<<24|Q>>>8,Jt=Q<<24|tt>>>8,Zt=et<<27|rt>>>5,Xt=rt<<27|et>>>5,Qt=nt<<20|it>>>12,te=it<<20|nt>>>12,ee=at<<7|ot>>>25,re=ot<<7|at>>>25,ne=st<<8|ut>>>24,ie=ut<<8|st>>>24,oe=ft<<14|ct>>>18,ae=ct<<14|ft>>>18;t[0]=ht^~At&Ut,t[1]=dt^~St&Nt,t[10]=qt^~Qt&bt,t[11]=zt^~te&mt,t[20]=_t^~Tt&Vt,t[21]=kt^~Rt&Gt,t[30]=Zt^~lt&Mt,t[31]=Xt^~pt&Et,t[40]=Ct^~Ht&ee,t[41]=Bt^~Kt&re,t[2]=At^~Ut&Wt,t[3]=St^~Nt&Yt,t[12]=Qt^~bt&xt,t[13]=te^~mt&It,t[22]=Tt^~Vt&ne,t[23]=Rt^~Gt&ie,t[32]=lt^~Mt&jt,t[33]=pt^~Et&Lt,t[42]=Ht^~ee&yt,t[43]=Kt^~re&vt,t[4]=Ut^~Wt&oe,t[5]=Nt^~Yt&ae,t[14]=bt^~xt&Ft,t[15]=mt^~It&Dt,t[24]=Vt^~ne>,t[25]=Gt^~ie&wt,t[34]=Mt^~jt&$t,t[35]=Et^~Lt&Jt,t[44]=ee^~yt&Ot,t[45]=re^~vt&Pt,t[6]=Wt^~oe&ht,t[7]=Yt^~ae&dt,t[16]=xt^~Ft&qt,t[17]=It^~Dt&zt,t[26]=ne^~gt&_t,t[27]=ie^~wt&kt,t[36]=jt^~$t&Zt,t[37]=Lt^~Jt&Xt,t[46]=yt^~Ot&Ct,t[47]=vt^~Pt&Bt,t[8]=oe^~ht&At,t[9]=ae^~dt&St,t[18]=Ft^~qt&Qt,t[19]=Dt^~zt&te,t[28]=gt^~_t&Tt,t[29]=wt^~kt&Rt,t[38]=$t^~Zt<,t[39]=Jt^~Xt&pt,t[48]=Ot^~Ct&Ht,t[49]=Pt^~Bt&Kt,t[0]^=n[2*e],t[1]^=n[2*e+1]}}},function(t,e,r){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=r(93),i=r(15),o=r(53),a=r(98);function s(t,e){return e?t-(2*e+35):t-27}function u(t){return 0===t||1===t}e.ecsign=function(t,e,r){var i=n.sign(t,e),o=i.recovery;return{r:i.signature.slice(0,32),s:i.signature.slice(32,64),v:r?o+(2*r+35):o+27}},e.ecrecover=function(e,r,i,a,f){var c=t.concat([o.setLength(i,32),o.setLength(a,32)],64),h=s(r,f);if(!u(h))throw new Error("Invalid signature v value");var d=n.recover(e,c,h);return n.publicKeyConvert(d,!1).slice(1)},e.toRpcSig=function(e,r,n,i){if(!u(s(e,i)))throw new Error("Invalid signature v value");return o.bufferToHex(t.concat([o.setLengthLeft(r,32),o.setLengthLeft(n,32),o.toBuffer(e)]))},e.fromRpcSig=function(t){var e=o.toBuffer(t);if(65!==e.length)throw new Error("Invalid signature length");var r=e[64];return r<27&&(r+=27),{v:r,r:e.slice(0,32),s:e.slice(32,64)}},e.isValidSignature=function(t,e,r,n,o){void 0===n&&(n=!0);var a=new i("7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0",16),f=new i("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",16);if(32!==e.length||32!==r.length)return!1;if(!u(s(t,o)))return!1;var c=new i(e),h=new i(r);return!(c.isZero()||c.gt(f)||h.isZero()||h.gt(f))&&(!n||1!==h.cmp(a))},e.hashPersonalMessage=function(e){var r=t.from("Ethereum Signed Message:\n"+e.length.toString(),"utf-8");return a.keccak(t.concat([r,e]))}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";(function(t){var n=r(0)(r(1));Object.defineProperty(e,"__esModule",{value:!0});var i=r(188),o=r(52),a=r(96),s=r(53);e.defineProperties=function(e,r,u){if(e.raw=[],e._fields=[],e.toJSON=function(t){if(void 0===t&&(t=!1),t){var r={};return e._fields.forEach((function(t){r[t]="0x"+e[t].toString("hex")})),r}return s.baToJSON(e.raw)},e.serialize=function(){return a.encode(e.raw)},r.forEach((function(r,n){function o(){return e.raw[n]}function a(o){"00"!==(o=s.toBuffer(o)).toString("hex")||r.allowZero||(o=t.allocUnsafe(0)),r.allowLess&&r.length?(o=s.stripZeros(o),i(r.length>=o.length,"The field "+r.name+" must not have more "+r.length+" bytes")):r.allowZero&&0===o.length||!r.length||i(r.length===o.length,"The field "+r.name+" must have byte length of "+r.length),e.raw[n]=o}e._fields.push(r.name),Object.defineProperty(e,r.name,{enumerable:!0,configurable:!0,get:o,set:a}),r.default&&(e[r.name]=r.default),r.alias&&Object.defineProperty(e,r.alias,{enumerable:!1,configurable:!0,set:a,get:o})})),u)if("string"==typeof u&&(u=t.from(o.stripHexPrefix(u),"hex")),t.isBuffer(u)&&(u=a.decode(u)),Array.isArray(u)){if(u.length>e._fields.length)throw new Error("wrong number of fields in data");u.forEach((function(t,r){e[e._fields[r]]=s.toBuffer(t)}))}else{if("object"!==(0,n.default)(u))throw new Error("invalid data");var f=Object.keys(u);r.forEach((function(t){-1!==f.indexOf(t.name)&&(e[t.name]=u[t.name]),-1!==f.indexOf(t.alias)&&(e[t.alias]=u[t.alias])}))}}}).call(this,r(2).Buffer)},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.chains={names:{1:"mainnet",3:"ropsten",4:"rinkeby",42:"kovan",6284:"goerli"},mainnet:r(460),ropsten:r(461),rinkeby:r(462),kovan:r(463),goerli:r(464)}},function(t){t.exports=JSON.parse('{"name":"mainnet","chainId":1,"networkId":1,"comment":"The Ethereum main chain","url":"https://ethstats.net/","genesis":{"hash":"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3","timestamp":null,"gasLimit":5000,"difficulty":17179869184,"nonce":"0x0000000000000042","extraData":"0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa","stateRoot":"0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544"},"hardforks":[{"name":"chainstart","block":0,"consensus":"pow","finality":null},{"name":"homestead","block":1150000,"consensus":"pow","finality":null},{"name":"dao","block":1920000,"consensus":"pow","finality":null},{"name":"tangerineWhistle","block":2463000,"consensus":"pow","finality":null},{"name":"spuriousDragon","block":2675000,"consensus":"pow","finality":null},{"name":"byzantium","block":4370000,"consensus":"pow","finality":null},{"name":"constantinople","block":7280000,"consensus":"pow","finality":null},{"name":"petersburg","block":7280000,"consensus":"pow","finality":null},{"name":"istanbul","block":null,"consensus":"pow","finality":null}],"bootstrapNodes":[{"ip":"13.93.211.84","port":30303,"id":"3f1d12044546b76342d59d4a05532c14b85aa669704bfe1f864fe079415aa2c02d743e03218e57a33fb94523adb54032871a6c51b2cc5514cb7c7e35b3ed0a99","location":"US-WEST","comment":"Go Bootnode"},{"ip":"191.235.84.50","port":30303,"id":"78de8a0916848093c73790ead81d1928bec737d565119932b98c6b100d944b7a95e94f847f689fc723399d2e31129d182f7ef3863f2b4c820abbf3ab2722344d","location":"BR","comment":"Go Bootnode"},{"ip":"13.75.154.138","port":30303,"id":"158f8aab45f6d19c6cbf4a089c2670541a8da11978a2f90dbf6a502a4a3bab80d288afdbeb7ec0ef6d92de563767f3b1ea9e8e334ca711e9f8e2df5a0385e8e6","location":"AU","comment":"Go Bootnode"},{"ip":"52.74.57.123","port":30303,"id":"1118980bf48b0a3640bdba04e0fe78b1add18e1cd99bf22d53daac1fd9972ad650df52176e7c7d89d1114cfef2bc23a2959aa54998a46afcf7d91809f0855082","location":"SG","comment":"Go Bootnode"}]}')},function(t){t.exports=JSON.parse('{"name":"ropsten","chainId":3,"networkId":3,"comment":"PoW test network","url":"https://github.com/ethereum/ropsten","genesis":{"hash":"0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d","timestamp":null,"gasLimit":16777216,"difficulty":1048576,"nonce":"0x0000000000000042","extraData":"0x3535353535353535353535353535353535353535353535353535353535353535","stateRoot":"0x217b0bbcfb72e2d57e28f33cb361b9983513177755dc3f33ce3e7022ed62b77b"},"hardforks":[{"name":"chainstart","block":0,"consensus":"pow","finality":null},{"name":"homestead","block":0,"consensus":"pow","finality":null},{"name":"dao","block":null,"consensus":"pow","finality":null},{"name":"tangerineWhistle","block":0,"consensus":"pow","finality":null},{"name":"spuriousDragon","block":10,"consensus":"pow","finality":null},{"name":"byzantium","block":1700000,"consensus":"pow","finality":null},{"name":"constantinople","block":4230000,"consensus":"pow","finality":null},{"name":"petersburg","block":4939394,"consensus":"pow","finality":null},{"name":"istanbul","block":null,"consensus":"pow","finality":null}],"bootstrapNodes":[{"ip":"52.176.7.10","port":"30303","id":"30b7ab30a01c124a6cceca36863ece12c4f5fa68e3ba9b0b51407ccc002eeed3b3102d20a88f1c1d3c3154e2449317b8ef95090e77b312d5cc39354f86d5d606","network":"Ropsten","chainId":3,"location":"US","comment":"US-Azure geth"},{"ip":"52.176.100.77","port":"30303","id":"865a63255b3bb68023b6bffd5095118fcc13e79dcf014fe4e47e065c350c7cc72af2e53eff895f11ba1bbb6a2b33271c1116ee870f266618eadfc2e78aa7349c","network":"Ropsten","chainId":3,"location":"US","comment":"US-Azure parity"},{"ip":"52.232.243.152","port":"30303","id":"6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f","network":"Ropsten","chainId":3,"location":"US","comment":"Parity"},{"ip":"192.81.208.223","port":"30303","id":"94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09","network":"Ropsten","chainId":3,"location":"US","comment":"@gpip"}]}')},function(t){t.exports=JSON.parse('{"name":"rinkeby","chainId":4,"networkId":4,"comment":"PoA test network","url":"https://www.rinkeby.io","genesis":{"hash":"0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177","timestamp":"0x58ee40ba","gasLimit":4700000,"difficulty":1,"nonce":"0x0000000000000000","extraData":"0x52657370656374206d7920617574686f7269746168207e452e436172746d616e42eb768f2244c8811c63729a21a3569731535f067ffc57839b00206d1ad20c69a1981b489f772031b279182d99e65703f0076e4812653aab85fca0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","stateRoot":"0x53580584816f617295ea26c0e17641e0120cab2f0a8ffb53a866fd53aa8e8c2d"},"hardforks":[{"name":"chainstart","block":0,"consensus":"poa","finality":null},{"name":"homestead","block":1,"consensus":"poa","finality":null},{"name":"dao","block":null,"consensus":"poa","finality":null},{"name":"tangerineWhistle","block":2,"consensus":"poa","finality":null},{"name":"spuriousDragon","block":3,"consensus":"poa","finality":null},{"name":"byzantium","block":1035301,"consensus":"poa","finality":null},{"name":"constantinople","block":null,"consensus":"poa","finality":null},{"name":"istanbul","block":null,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"52.169.42.101","port":30303,"id":"a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf","location":"IE","comment":""},{"ip":"52.3.158.184","port":30303,"id":"343149e4feefa15d882d9fe4ac7d88f885bd05ebb735e547f12e12080a9fa07c8014ca6fd7f373123488102fe5e34111f8509cf0b7de3f5b44339c9f25e87cb8","location":"","comment":"INFURA"}]}')},function(t){t.exports=JSON.parse('{"name":"kovan","chainId":42,"networkId":42,"comment":"Parity PoA test network","url":"https://kovan-testnet.github.io/website/","genesis":{"hash":"0xa3c565fc15c7478862d50ccd6561e3c06b24cc509bf388941c25ea985ce32cb9","timestamp":null,"gasLimit":6000000,"difficulty":131072,"nonce":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","extraData":"0x","stateRoot":"0x2480155b48a1cea17d67dbfdfaafe821c1d19cdd478c5358e8ec56dec24502b2"},"hardforks":[],"bootstrapNodes":[{"ip":"40.71.221.215","port":30303,"id":"56abaf065581a5985b8c5f4f88bd202526482761ba10be9bfdcd14846dd01f652ec33fde0f8c0fd1db19b59a4c04465681fcef50e11380ca88d25996191c52de","location":"","comment":"Parity Bootnode"},{"ip":"52.166.117.77","port":30303,"id":"d07827483dc47b368eaf88454fb04b41b7452cf454e194e2bd4c14f98a3278fed5d819dbecd0d010407fc7688d941ee1e58d4f9c6354d3da3be92f55c17d7ce3","location":"","comment":"Parity Bootnode"},{"ip":"52.165.239.18","port":30303,"id":"8fa162563a8e5a05eef3e1cd5abc5828c71344f7277bb788a395cce4a0e30baf2b34b92fe0b2dbbba2313ee40236bae2aab3c9811941b9f5a7e8e90aaa27ecba","location":"","comment":"Parity Bootnode"},{"ip":"52.243.47.56","port":30303,"id":"7e2e7f00784f516939f94e22bdc6cf96153603ca2b5df1c7cc0f90a38e7a2f218ffb1c05b156835e8b49086d11fdd1b3e2965be16baa55204167aa9bf536a4d9","location":"","comment":"Parity Bootnode"},{"ip":"40.68.248.100","port":30303,"id":"0518a3d35d4a7b3e8c433e7ffd2355d84a1304ceb5ef349787b556197f0c87fad09daed760635b97d52179d645d3e6d16a37d2cc0a9945c2ddf585684beb39ac","location":"","comment":"Parity Bootnode"}]}')},function(t){t.exports=JSON.parse('{"name":"goerli","chainId":5,"networkId":5,"comment":"Cross-client PoA test network","url":"https://github.com/goerli/testnet","genesis":{"hash":"0xbf7e331f7f7c1dd2e05159666b3bf8bc7a8a3a9eb1d518969eab529dd9b88c1a","timestamp":"0x5c51a607","gasLimit":10485760,"difficulty":1,"nonce":"0x0000000000000000","extraData":"0x22466c6578692069732061207468696e6722202d204166726900000000000000e0a2bd4258d2768837baa26a28fe71dc079f84c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","stateRoot":"0x5d6cded585e73c4e322c30c2f782a336316f17dd85a4863b9d838d2d4b8b3008"},"hardforks":[{"name":"chainstart","block":0,"consensus":"poa","finality":null},{"name":"homestead","block":0,"consensus":"poa","finality":null},{"name":"dao","block":0,"consensus":"poa","finality":null},{"name":"tangerineWhistle","block":0,"consensus":"poa","finality":null},{"name":"spuriousDragon","block":0,"consensus":"poa","finality":null},{"name":"byzantium","block":0,"consensus":"poa","finality":null},{"name":"constantinople","block":0,"consensus":"poa","finality":null},{"name":"petersburg","block":0,"consensus":"poa","finality":null},{"name":"istanbul","block":null,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"51.141.78.53","port":30303,"id":"011f758e6552d105183b1761c5e2dea0111bc20fd5f6422bc7f91e0fabbec9a6595caf6239b37feb773dddd3f87240d99d859431891e4a642cf2a0a9e6cbb98a","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"},{"ip":"13.93.54.137","port":30303,"id":"176b9417f511d05b6b2cf3e34b756cf0a7096b3094572a8f6ef4cdcb9d1f9d00683bf0f83347eebdf3b81c3521c2332086d9592802230bf528eaf606a1d9677b","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"},{"ip":"94.237.54.114","port":30313,"id":"46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"},{"ip":"52.64.155.147","port":30303,"id":"c1f8b7c2ac4453271fa07d8e9ecf9a2e8285aa0bd0c07df0131f47153306b0736fd3db8924e7a9bf0bed6b1d8d4f87362a71b033dc7c64547728d953e43e59b2","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"},{"ip":"213.186.16.82","port":30303,"id":"f4a9c6ee28586009fb5a96c8af13a58ed6d8315a9eee4772212c1d4d9cebe5a8b8a78ea4434f318726317d04a3f531a1ef0420cf9752605a562cfe858c46e263","location":"","comment":"Source: https://github.com/goerli/testnet/blob/master/bootnodes.txt"}]}')},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hardforks=[["chainstart",r(466)],["homestead",r(467)],["dao",r(468)],["tangerineWhistle",r(469)],["spuriousDragon",r(470)],["byzantium",r(471)],["constantinople",r(472)],["petersburg",r(473)],["istanbul",r(474)]]},function(t){t.exports=JSON.parse('{"name":"chainstart","comment":"Start of the Ethereum main chain","eip":{"url":"","status":""},"status":"","gasConfig":{"minGasLimit":{"v":5000,"d":"Minimum the gas limit may ever be"},"gasLimitBoundDivisor":{"v":1024,"d":"The bound divisor of the gas limit, used in update calculations"}},"gasPrices":{"base":{"v":2,"d":"Gas base cost, used e.g. for ChainID opcode (Istanbul)"},"tierStep":{"v":[0,2,3,5,8,10,20],"d":"Once per operation, for a selection of them"},"exp":{"v":10,"d":"Once per EXP instuction"},"expByte":{"v":10,"d":"Times ceil(log256(exponent)) for the EXP instruction"},"sha3":{"v":30,"d":"Once per SHA3 operation"},"sha3Word":{"v":6,"d":"Once per word of the SHA3 operation\'s data"},"sload":{"v":50,"d":"Once per SLOAD operation"},"sstoreSet":{"v":20000,"d":"Once per SSTORE operation if the zeroness changes from zero"},"sstoreReset":{"v":5000,"d":"Once per SSTORE operation if the zeroness does not change from zero"},"sstoreRefund":{"v":15000,"d":"Once per SSTORE operation if the zeroness changes to zero"},"jumpdest":{"v":1,"d":"Refunded gas, once per SSTORE operation if the zeroness changes to zero"},"log":{"v":375,"d":"Per LOG* operation"},"logData":{"v":8,"d":"Per byte in a LOG* operation\'s data"},"logTopic":{"v":375,"d":"Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas"},"create":{"v":32000,"d":"Once per CREATE operation & contract-creation transaction"},"call":{"v":40,"d":"Once per CALL operation & message call transaction"},"callStipend":{"v":2300,"d":"Free gas given at beginning of call"},"callValueTransfer":{"v":9000,"d":"Paid for CALL when the value transfor is non-zero"},"callNewAccount":{"v":25000,"d":"Paid for CALL when the destination address didn\'t exist prior"},"selfdestructRefund":{"v":24000,"d":"Refunded following a selfdestruct operation"},"memory":{"v":3,"d":"Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL"},"quadCoeffDiv":{"v":512,"d":"Divisor for the quadratic particle of the memory cost equation"},"createData":{"v":200,"d":""},"tx":{"v":21000,"d":"Per transaction. NOTE: Not payable on data of calls between transactions"},"txCreation":{"v":32000,"d":"The cost of creating a contract via tx"},"txDataZero":{"v":4,"d":"Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions"},"txDataNonZero":{"v":68,"d":"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"},"copy":{"v":3,"d":"Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added"},"ecRecover":{"v":3000,"d":""},"sha256":{"v":60,"d":""},"sha256Word":{"v":12,"d":""},"ripemd160":{"v":600,"d":""},"ripemd160Word":{"v":120,"d":""},"identity":{"v":15,"d":""},"identityWord":{"v":3,"d":""}},"vm":{"stackLimit":{"v":1024,"d":"Maximum size of VM stack allowed"},"callCreateDepth":{"v":1024,"d":"Maximum depth of call/create stack"},"maxExtraDataSize":{"v":32,"d":"Maximum size extra data may be after Genesis"}},"pow":{"minimumDifficulty":{"v":131072,"d":"The minimum that the difficulty may ever be"},"difficultyBoundDivisor":{"v":2048,"d":"The bound divisor of the difficulty, used in the update calculations"},"durationLimit":{"v":13,"d":"The decision boundary on the blocktime duration used to determine whether difficulty should go up or not"},"epochDuration":{"v":30000,"d":"Duration between proof-of-work epochs"},"timebombPeriod":{"v":100000,"d":"Exponential difficulty timebomb period"},"minerReward":{"v":"5000000000000000000","d":"the amount a miner get rewarded for mining a block"}},"casper":{},"sharding":{}}')},function(t){t.exports=JSON.parse('{"name":"homestead","comment":"Homestead hardfork with protocol and network changes","eip":{"url":"https://eips.ethereum.org/EIPS/eip-606","status":"Final"},"gasConfig":{},"gasPrices":{},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(t){t.exports=JSON.parse('{"name":"dao","comment":"DAO rescue hardfork","eip":{"url":"https://eips.ethereum.org/EIPS/eip-779","status":"Final"},"gasConfig":{},"gasPrices":{},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(t){t.exports=JSON.parse('{"name":"tangerineWhistle","comment":"Hardfork with gas cost changes for IO-heavy operations","eip":{"url":"https://eips.ethereum.org/EIPS/eip-608","status":"Final"},"gasConfig":{},"gasPrices":{"sload":{"v":200,"d":"Once per SLOAD operation"},"call":{"v":700,"d":"Once per CALL operation & message call transaction"}},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(t){t.exports=JSON.parse('{"name":"spuriousDragon","comment":"HF with EIPs for simple replay attack protection, EXP cost increase, state trie clearing, contract code size limit","eip":{"url":"https://eips.ethereum.org/EIPS/eip-607","status":"Final"},"gasConfig":{},"gasPrices":{"expByte":{"v":50,"d":"Times ceil(log256(exponent)) for the EXP instruction"}},"vm":{"maxCodeSize":{"v":24576,"d":"Maximum length of contract code"}},"pow":{},"casper":{},"sharding":{}}')},function(t){t.exports=JSON.parse('{"name":"byzantium","comment":"Hardfork with new precompiles, instructions and other protocol changes","eip":{"url":"https://eips.ethereum.org/EIPS/eip-609","status":"Final"},"gasConfig":{},"gasPrices":{"modexpGquaddivisor":{"v":20,"d":"Gquaddivisor from modexp precompile for gas calculation"},"ecAdd":{"v":500,"d":"Gas costs for curve addition precompile"},"ecMul":{"v":40000,"d":"Gas costs for curve multiplication precompile"},"ecPairing":{"v":100000,"d":"Base gas costs for curve pairing precompile"},"ecPairingWord":{"v":80000,"d":"Gas costs regarding curve pairing precompile input length"}},"vm":{},"pow":{"minerReward":{"v":"3000000000000000000","d":"the amount a miner get rewarded for mining a block"}},"casper":{},"sharding":{}}')},function(t){t.exports=JSON.parse('{"name":"constantinople","comment":"Postponed hardfork including EIP-1283 (SSTORE gas metering changes)","eip":{"url":"https://eips.ethereum.org/EIPS/eip-1013","status":"Final"},"gasConfig":{},"gasPrices":{"netSstoreNoopGas":{"v":200,"d":"Once per SSTORE operation if the value doesn\'t change"},"netSstoreInitGas":{"v":20000,"d":"Once per SSTORE operation from clean zero"},"netSstoreCleanGas":{"v":5000,"d":"Once per SSTORE operation from clean non-zero"},"netSstoreDirtyGas":{"v":200,"d":"Once per SSTORE operation from dirty"},"netSstoreClearRefund":{"v":15000,"d":"Once per SSTORE operation for clearing an originally existing storage slot"},"netSstoreResetRefund":{"v":4800,"d":"Once per SSTORE operation for resetting to the original non-zero value"},"netSstoreResetClearRefund":{"v":19800,"d":"Once per SSTORE operation for resetting to the original zero value"}},"vm":{},"pow":{"minerReward":{"v":"2000000000000000000","d":"The amount a miner gets rewarded for mining a block"}},"casper":{},"sharding":{}}')},function(t){t.exports=JSON.parse('{"name":"petersburg","comment":"Aka constantinopleFix, removes EIP-1283, activate together with or after constantinople","eip":{"url":"https://github.com/ethereum/EIPs/pull/1716","status":"Draft"},"gasConfig":{},"gasPrices":{"netSstoreNoopGas":{"v":null,"d":"Removed along EIP-1283"},"netSstoreInitGas":{"v":null,"d":"Removed along EIP-1283"},"netSstoreCleanGas":{"v":null,"d":"Removed along EIP-1283"},"netSstoreDirtyGas":{"v":null,"d":"Removed along EIP-1283"},"netSstoreClearRefund":{"v":null,"d":"Removed along EIP-1283"},"netSstoreResetRefund":{"v":null,"d":"Removed along EIP-1283"},"netSstoreResetClearRefund":{"v":null,"d":"Removed along EIP-1283"}},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(t){t.exports=JSON.parse('{"name":"istanbul","comment":"HF targeted for October 2019 following the Constantinople/Petersburg HF","eip":{"url":"https://eips.ethereum.org/EIPS/eip-1679","status":"Draft"},"gasConfig":{},"gasPrices":{"blake2Round":{"v":1,"d":"Gas cost per round for the Blake2 F precompile"},"ecAdd":{"v":150,"d":"Gas costs for curve addition precompile"},"ecMul":{"v":6000,"d":"Gas costs for curve multiplication precompile"},"ecPairing":{"v":45000,"d":"Base gas costs for curve pairing precompile"},"ecPairingWord":{"v":34000,"d":"Gas costs regarding curve pairing precompile input length"},"txDataNonZero":{"v":16,"d":"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions"},"sstoreSentryGasEIP2200":{"v":2300,"d":"Minimum gas required to be present for an SSTORE call, not consumed"},"sstoreNoopGasEIP2200":{"v":800,"d":"Once per SSTORE operation if the value doesn\'t change"},"sstoreDirtyGasEIP2200":{"v":800,"d":"Once per SSTORE operation if a dirty value is changed"},"sstoreInitGasEIP2200":{"v":20000,"d":"Once per SSTORE operation from clean zero to non-zero"},"sstoreInitRefundEIP2200":{"v":19200,"d":"Once per SSTORE operation for resetting to the original zero value"},"sstoreCleanGasEIP2200":{"v":5000,"d":"Once per SSTORE operation from clean non-zero to something else"},"sstoreCleanRefundEIP2200":{"v":4200,"d":"Once per SSTORE operation for resetting to the original non-zero value"},"sstoreClearRefundEIP2200":{"v":15000,"d":"Once per SSTORE operation for clearing an originally existing storage slot"}},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(t,e,r){"use strict";var n,i=(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])})(t,e)},function(t,e){function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0});var o=r(175),a=r(2),s=function(t){function e(e,r){void 0===e&&(e={}),void 0===r&&(r={});var n=t.call(this,e,r)||this;Object.defineProperty(n,"from",{enumerable:!0,configurable:!0,get:function(){return n.getSenderAddress()},set:function(t){t&&(n._from=o.toBuffer(t))}});var i=e;return i.from&&(n.from=o.toBuffer(i.from)),n}return i(e,t),e.prototype.hash=function(e){if(void 0===e&&(e=!0),e&&this._from&&""!==this._from.toString("hex")){var r=a.Buffer.concat([this._from,this._from.slice(0,12)]);this.sign(r)}return t.prototype.hash.call(this,e)},e}(r(174).default);e.default=s},function(t,e,r){"use strict";var n=r(10);t.exports=function(t){var e,r=this;return this.net.getId().then((function(t){return e=t,r.getBlock(0)})).then((function(r){var i="private";return"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"===r.hash&&1===e&&(i="main"),"0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303"===r.hash&&2===e&&(i="morden"),"0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d"===r.hash&&3===e&&(i="ropsten"),"0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177"===r.hash&&4===e&&(i="rinkeby"),"0xbf7e331f7f7c1dd2e05159666b3bf8bc7a8a3a9eb1d518969eab529dd9b88c1a"===r.hash&&5===e&&(i="goerli"),"0xa3c565fc15c7478862d50ccd6561e3c06b24cc509bf388941c25ea985ce32cb9"===r.hash&&42===e&&(i="kovan"),n.isFunction(t)&&t(null,i),i})).catch((function(e){if(!n.isFunction(t))throw e;t(e)}))}},function(t,e,r){"use strict";var n=r(29),i=r(58).subscriptions,o=r(32),a=r(61),s=function(){console.warn("web3-shh package will be deprecated in version 1.3.5 and will no longer be supported.");var t=this;n.packageInit(this,arguments);var e=this.setRequestManager;this.setRequestManager=function(r){return e(r),t.net.setRequestManager(r),!0};var r=this.setProvider;this.setProvider=function(){r.apply(t,arguments),t.setRequestManager(t._requestManager)},this.net=new a(this),[new i({name:"subscribe",type:"shh",subscriptions:{messages:{params:1}}}),new o({name:"getVersion",call:"shh_version",params:0}),new o({name:"getInfo",call:"shh_info",params:0}),new o({name:"setMaxMessageSize",call:"shh_setMaxMessageSize",params:1}),new o({name:"setMinPoW",call:"shh_setMinPoW",params:1}),new o({name:"markTrustedPeer",call:"shh_markTrustedPeer",params:1}),new o({name:"newKeyPair",call:"shh_newKeyPair",params:0}),new o({name:"addPrivateKey",call:"shh_addPrivateKey",params:1}),new o({name:"deleteKeyPair",call:"shh_deleteKeyPair",params:1}),new o({name:"hasKeyPair",call:"shh_hasKeyPair",params:1}),new o({name:"getPublicKey",call:"shh_getPublicKey",params:1}),new o({name:"getPrivateKey",call:"shh_getPrivateKey",params:1}),new o({name:"newSymKey",call:"shh_newSymKey",params:0}),new o({name:"addSymKey",call:"shh_addSymKey",params:1}),new o({name:"generateSymKeyFromPassword",call:"shh_generateSymKeyFromPassword",params:1}),new o({name:"hasSymKey",call:"shh_hasSymKey",params:1}),new o({name:"getSymKey",call:"shh_getSymKey",params:1}),new o({name:"deleteSymKey",call:"shh_deleteSymKey",params:1}),new o({name:"newMessageFilter",call:"shh_newMessageFilter",params:1}),new o({name:"getFilterMessages",call:"shh_getFilterMessages",params:1}),new o({name:"deleteMessageFilter",call:"shh_deleteMessageFilter",params:1}),new o({name:"post",call:"shh_post",params:1,inputFormatter:[null]}),new o({name:"unsubscribe",call:"shh_unsubscribe",params:1})].forEach((function(e){e.attachToObject(t),e.setRequestManager(t._requestManager)}))};s.prototype.clearSubscriptions=function(){this._requestManager.clearSubscriptions()},n.addProviders(s),t.exports=s},function(t,e,r){"use strict";var n=r(10),i=r(479),o=function t(e){console.warn("web3-bzz package will be deprecated in version 1.3.5 and will no longer be supported."),this.givenProvider=t.givenProvider,e&&e._requestManager&&(e=e.currentProvider),"undefined"!=typeof document&&(this.pick=i.pick),this.setProvider(e)};o.givenProvider=null,"undefined"!=typeof ethereum&ðereum.bzz&&(o.givenProvider=ethereum.bzz),o.prototype.setProvider=function(t){if(n.isObject(t)&&n.isString(t.bzz)&&(t=t.bzz),!n.isString(t)){this.currentProvider=null;var e=new Error("No provider set, please set one using bzz.setProvider().");return this.download=this.upload=this.isAvailable=function(){throw e},!1}return this.currentProvider=t,this.download=i.at(t).download,this.upload=i.at(t).upload,this.isAvailable=i.at(t).isAvailable,!0},t.exports=o},function(t,e,r){"use strict";var n=function(){throw"This swarm.js function isn't available on the browser."},i={readFile:n},o={download:n,safeDownloadArchived:n,directoryTree:n},a={platform:n,arch:n},s={join:n,slice:n},u={spawn:n},f={lookup:n},c=r(480),h=r(196),d=r(507),l=r(509),p=r(510);t.exports=p({fs:i,files:o,os:a,path:s,child_process:u,defaultArchives:{},mimetype:f,request:c,downloadUrl:null,bytes:h,hash:d,pick:l})},function(t,e,r){"use strict";var n=r(481),i=r(484),o=r(97),a=r(485),s=r(486),u=function(){};t.exports=function(t,e,r){if(!t||"string"!=typeof t)throw new TypeError("must specify a URL");"function"==typeof e&&(r=e,e={});if(r&&"function"!=typeof r)throw new TypeError("expected cb to be undefined or a function");r=r||u;var f=(e=e||{}).json?"json":"text",c=(e=o({responseType:f},e)).headers||{},h=(e.method||"GET").toUpperCase(),d=e.query;d&&("string"!=typeof d&&(d=n.stringify(d)),t=i(t,d));"json"===e.responseType&&a(c,"Accept","application/json");e.json&&"GET"!==h&&"HEAD"!==h&&(a(c,"Content-Type","application/json"),e.body=JSON.stringify(e.body));return e.method=h,e.url=t,e.headers=c,delete e.query,delete e.json,s(e,r)}},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(482),o=r(97),a=r(483);function s(t,e){return e.encode?e.strict?i(t):encodeURIComponent(t):t}function u(t){var e=t.indexOf("?");return-1===e?"":t.slice(e+1)}function f(t,e){var r=function(t){var e;switch(t.arrayFormat){case"index":return function(t,r,n){e=/\[(\d*)\]$/.exec(t),t=t.replace(/\[\d*\]$/,""),e?(void 0===n[t]&&(n[t]={}),n[t][e[1]]=r):n[t]=r};case"bracket":return function(t,r,n){e=/(\[\])$/.exec(t),t=t.replace(/\[\]$/,""),e?void 0!==n[t]?n[t]=[].concat(n[t],r):n[t]=[r]:n[t]=r};default:return function(t,e,r){void 0!==r[t]?r[t]=[].concat(r[t],e):r[t]=e}}}(e=o({arrayFormat:"none"},e)),i=Object.create(null);return"string"!=typeof t?i:(t=t.trim().replace(/^[?#&]/,""))?(t.split("&").forEach((function(t){var e=t.replace(/\+/g," ").split("="),n=e.shift(),o=e.length>0?e.join("="):void 0;o=void 0===o?null:a(o),r(a(n),o,i)})),Object.keys(i).sort().reduce((function(t,e){var r=i[e];return Boolean(r)&&"object"===(0,n.default)(r)&&!Array.isArray(r)?t[e]=function t(e){return Array.isArray(e)?e.sort():"object"===(0,n.default)(e)?t(Object.keys(e)).sort((function(t,e){return Number(t)-Number(e)})).map((function(t){return e[t]})):e}(r):t[e]=r,t}),Object.create(null))):i}e.extract=u,e.parse=f,e.stringify=function(t,e){!1===(e=o({encode:!0,strict:!0,arrayFormat:"none"},e)).sort&&(e.sort=function(){});var r=function(t){switch(t.arrayFormat){case"index":return function(e,r,n){return null===r?[s(e,t),"[",n,"]"].join(""):[s(e,t),"[",s(n,t),"]=",s(r,t)].join("")};case"bracket":return function(e,r){return null===r?s(e,t):[s(e,t),"[]=",s(r,t)].join("")};default:return function(e,r){return null===r?s(e,t):[s(e,t),"=",s(r,t)].join("")}}}(e);return t?Object.keys(t).sort(e.sort).map((function(n){var i=t[n];if(void 0===i)return"";if(null===i)return s(n,e);if(Array.isArray(i)){var o=[];return i.slice().forEach((function(t){void 0!==t&&o.push(r(n,t,o.length))})),o.join("&")}return s(n,e)+"="+s(i,e)})).filter((function(t){return t.length>0})).join("&"):""},e.parseUrl=function(t,e){return{url:t.split("?")[0]||"",query:f(u(t),e)}}},function(t,e,r){"use strict";t.exports=function(t){return encodeURIComponent(t).replace(/[!'()*]/g,(function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}))}},function(t,e,r){"use strict";var n=r(0)(r(1)),i=new RegExp("%[a-f0-9]{2}","gi"),o=new RegExp("(%[a-f0-9]{2})+","gi");function a(t,e){try{return decodeURIComponent(t.join(""))}catch(t){}if(1===t.length)return t;e=e||1;var r=t.slice(0,e),n=t.slice(e);return Array.prototype.concat.call([],a(r),a(n))}function s(t){try{return decodeURIComponent(t)}catch(n){for(var e=t.match(i),r=1;r0&&(h=setTimeout((function(){if(!f){f=!0,c.abort("timeout");var t=new Error("XMLHttpRequest timeout");t.code="ETIMEDOUT",i(t)}}),t.timeout)),c.setRequestHeader)for(s in b)b.hasOwnProperty(s)&&c.setRequestHeader(s,b[s]);else if(t.headers&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(t.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in t&&(c.responseType=t.responseType),"beforeSend"in t&&"function"==typeof t.beforeSend&&t.beforeSend(c),c.send(p||null),c}t.exports=u,t.exports.default=u,u.XMLHttpRequest=n.XMLHttpRequest||function(){},u.XDomainRequest="withCredentials"in new u.XMLHttpRequest?u.XMLHttpRequest:n.XDomainRequest,function(t,e){for(var r=0;r0&&!o.call(t,0))for(var m=0;m0)for(var y=0;y>0},ToUint32:function(t){return this.ToNumber(t)>>>0},ToUint16:function(t){var e=this.ToNumber(t);if(f(e)||0===e||!c(e))return 0;var r=h(e)*Math.floor(Math.abs(e));return d(r,65536)},ToString:function(t){return s(t)},ToObject:function(t){return this.CheckObjectCoercible(t),o(t)},CheckObjectCoercible:function(t,e){if(null==t)throw new a(e||"Cannot call method on "+t);return t},IsCallable:l,SameValue:function(t,e){return t===e?0!==t||1/t==1/e:f(t)&&f(e)},Type:function(t){return null===t?"Null":void 0===t?"Undefined":"function"==typeof t||"object"===(0,n.default)(t)?"Object":"number"==typeof t?"Number":"boolean"==typeof t?"Boolean":"string"==typeof t?"String":void 0},IsPropertyDescriptor:function(t){if("Object"!==this.Type(t))return!1;var e={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var r in t)if(b(t,r)&&!e[r])return!1;var n=b(t,"[[Value]]"),i=b(t,"[[Get]]")||b(t,"[[Set]]");if(n&&i)throw new a("Property Descriptors may not be both accessor and data descriptors");return!0},IsAccessorDescriptor:function(t){return void 0!==t&&(u(this,"Property Descriptor","Desc",t),!(!b(t,"[[Get]]")&&!b(t,"[[Set]]")))},IsDataDescriptor:function(t){return void 0!==t&&(u(this,"Property Descriptor","Desc",t),!(!b(t,"[[Value]]")&&!b(t,"[[Writable]]")))},IsGenericDescriptor:function(t){return void 0!==t&&(u(this,"Property Descriptor","Desc",t),!this.IsAccessorDescriptor(t)&&!this.IsDataDescriptor(t))},FromPropertyDescriptor:function(t){if(void 0===t)return t;if(u(this,"Property Descriptor","Desc",t),this.IsDataDescriptor(t))return{value:t["[[Value]]"],writable:!!t["[[Writable]]"],enumerable:!!t["[[Enumerable]]"],configurable:!!t["[[Configurable]]"]};if(this.IsAccessorDescriptor(t))return{get:t["[[Get]]"],set:t["[[Set]]"],enumerable:!!t["[[Enumerable]]"],configurable:!!t["[[Configurable]]"]};throw new a("FromPropertyDescriptor must be called with a fully populated Property Descriptor")},ToPropertyDescriptor:function(t){if("Object"!==this.Type(t))throw new a("ToPropertyDescriptor requires an object");var e={};if(b(t,"enumerable")&&(e["[[Enumerable]]"]=this.ToBoolean(t.enumerable)),b(t,"configurable")&&(e["[[Configurable]]"]=this.ToBoolean(t.configurable)),b(t,"value")&&(e["[[Value]]"]=t.value),b(t,"writable")&&(e["[[Writable]]"]=this.ToBoolean(t.writable)),b(t,"get")){var r=t.get;if(void 0!==r&&!this.IsCallable(r))throw new TypeError("getter must be a function");e["[[Get]]"]=r}if(b(t,"set")){var n=t.set;if(void 0!==n&&!this.IsCallable(n))throw new a("setter must be a function");e["[[Set]]"]=n}if((b(e,"[[Get]]")||b(e,"[[Set]]"))&&(b(e,"[[Value]]")||b(e,"[[Writable]]")))throw new a("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");return e}};t.exports=m},function(t,e,r){"use strict";var n=r(193),i=n("%TypeError%"),o=n("%SyntaxError%"),a=r(194),s={"Property Descriptor":function(t,e){if("Object"!==t.Type(e))return!1;var r={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var n in e)if(a(e,n)&&!r[n])return!1;var o=a(e,"[[Value]]"),s=a(e,"[[Get]]")||a(e,"[[Set]]");if(o&&s)throw new i("Property Descriptors may not be both accessor and data descriptors");return!0}};t.exports=function(t,e,r,n){var a=s[e];if("function"!=typeof a)throw new o("unknown record type: "+e);if(!a(t,n))throw new i(r+" must be a "+e);console.log(a(t,n),n)}},function(t,e,r){"use strict";t.exports=Number.isNaN||function(t){return t!=t}},function(t,e,r){"use strict";var n=Number.isNaN||function(t){return t!=t};t.exports=Number.isFinite||function(t){return"number"==typeof t&&!n(t)&&t!==1/0&&t!==-1/0}},function(t,e,r){"use strict";t.exports=function(t){return t>=0?1:-1}},function(t,e,r){"use strict";t.exports=function(t,e){var r=t%e;return Math.floor(r>=0?r:r+e)}},function(t,e,r){"use strict";var n=Object.prototype.toString,i=r(502),o=r(100),a=function(t){var e;if((e=arguments.length>1?arguments[1]:"[object Date]"===n.call(t)?String:Number)===String||e===Number){var r,a,s=e===String?["toString","valueOf"]:["valueOf","toString"];for(a=0;a1?a(t,arguments[1]):a(t)}},function(t,e,r){"use strict";var n=r(0)(r(1));t.exports=function(t){return null===t||"function"!=typeof t&&"object"!==(0,n.default)(t)}},function(t,e,r){"use strict";var n=r(190),i=r(195);t.exports=function(){var t=i();return n(String.prototype,{trim:t},{trim:function(){return String.prototype.trim!==t}}),t}},function(t,e,r){"use strict";var n=r(100),i=Object.prototype.toString,o=Object.prototype.hasOwnProperty,a=function(t,e,r){for(var n=0,i=t.length;n=3&&(o=r),"[object Array]"===i.call(t)?a(t,e,o):"string"==typeof t?s(t,e,o):u(t,e,o)}},function(t,e,r){"use strict";t.exports=function(t,e){return e?{statusCode:e.statusCode,headers:e.headers,method:t.method,url:t.url,rawRequest:e.rawRequest?e.rawRequest:e}:null}},function(t,e,r){"use strict";var n=function(t,e){for(var r=[],n=0;n>>31),r=(p=t[9]^t[19]^t[29]^t[39]^t[49])^(u<<1|s>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=i^(f<<1|c>>>31),r=o^(c<<1|f>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=s^(h<<1|d>>>31),r=u^(d<<1|h>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=f^(l<<1|p>>>31),r=c^(p<<1|l>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=h^(i<<1|o>>>31),r=d^(o<<1|i>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,b=t[0],m=t[1],W=t[11]<<4|t[10]>>>28,Y=t[10]<<4|t[11]>>>28,O=t[20]<<3|t[21]>>>29,P=t[21]<<3|t[20]>>>29,st=t[31]<<9|t[30]>>>23,ut=t[30]<<9|t[31]>>>23,H=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,U=t[2]<<1|t[3]>>>31,N=t[3]<<1|t[2]>>>31,y=t[13]<<12|t[12]>>>20,v=t[12]<<12|t[13]>>>20,$=t[22]<<10|t[23]>>>22,J=t[23]<<10|t[22]>>>22,C=t[33]<<13|t[32]>>>19,B=t[32]<<13|t[33]>>>19,ft=t[42]<<2|t[43]>>>30,ct=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,j=t[14]<<6|t[15]>>>26,L=t[15]<<6|t[14]>>>26,g=t[25]<<11|t[24]>>>21,w=t[24]<<11|t[25]>>>21,Z=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,T=t[45]<<29|t[44]>>>3,R=t[44]<<29|t[45]>>>3,M=t[6]<<28|t[7]>>>4,E=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,it=t[16]<<23|t[17]>>>9,F=t[26]<<25|t[27]>>>7,D=t[27]<<25|t[26]>>>7,_=t[36]<<21|t[37]>>>11,k=t[37]<<21|t[36]>>>11,Q=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,V=t[8]<<27|t[9]>>>5,G=t[9]<<27|t[8]>>>5,x=t[18]<<20|t[19]>>>12,I=t[19]<<20|t[18]>>>12,ot=t[29]<<7|t[28]>>>25,at=t[28]<<7|t[29]>>>25,q=t[38]<<8|t[39]>>>24,z=t[39]<<8|t[38]>>>24,A=t[48]<<14|t[49]>>>18,S=t[49]<<14|t[48]>>>18,t[0]=b^~y&g,t[1]=m^~v&w,t[10]=M^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&$,t[31]=G^~Y&J,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=y^~g&_,t[3]=v^~w&k,t[12]=x^~O&C,t[13]=I^~P&B,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~$&Z,t[33]=Y^~J&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&S,t[14]=O^~C&T,t[15]=P^~B&R,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=$^~Z&Q,t[35]=J^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&b,t[7]=k^~S&m,t[16]=C^~T&M,t[17]=B^~R&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=Z^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~b&y,t[9]=S^~m&v,t[18]=T^~M&x,t[19]=R^~E&I,t[28]=H^~U&j,t[29]=K^~N&L,t[38]=Q^~V&W,t[39]=tt^~G&Y,t[48]=ft^~et&nt,t[49]=ct^~rt&it,t[0]^=a[n],t[1]^=a[n+1]},u=function(t){return function(e){var r;if("0x"===e.slice(0,2)){r=[];for(var a=2,u=e.length;a>2]|=e[l]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|63&r)<=57344?(u[m>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|63&r)<=f){for(t.start=m-f,t.block=u[c],m=0;m>2]|=i[3&m],t.lastByteIndex===f)for(u[0]=u[c],m=1;m>4&15]+n[15&p]+n[p>>12&15]+n[p>>8&15]+n[p>>20&15]+n[p>>16&15]+n[p>>28&15]+n[p>>24&15];y%c==0&&(s(d),m=0)}return"0x"+b}(function(t){return{blocks:[],reset:!0,block:0,start:0,blockCount:1600-(t<<1)>>5,outputBlocks:t>>5,s:(e=[0,0,0,0,0,0,0,0,0,0],[].concat(e,e,e,e,e))};var e}(t),r)}};t.exports={keccak256:u(256),keccak512:u(512),keccak256s:u(256),keccak512s:u(512)}},function(t,e,r){"use strict";var n=function(t){return function(){return new Promise((function(e,r){var n,i=function(r){var n={},i=r.target.files.length,o=0;[].map.call(r.target.files,(function(r){var a=new FileReader;a.onload=function(a){var s=new Uint8Array(a.target.result);if("directory"===t){var u=r.webkitRelativePath;n[u.slice(u.indexOf("/")+1)]={type:"text/plain",data:s},++o===i&&e(n)}else if("file"===t){var f=r.webkitRelativePath;e({type:mimetype.lookup(f),data:s})}else e(s)},a.readAsArrayBuffer(r)}))};"directory"===t?((n=document.createElement("input")).addEventListener("change",i),n.type="file",n.webkitdirectory=!0,n.mozdirectory=!0,n.msdirectory=!0,n.odirectory=!0,n.directory=!0):((n=document.createElement("input")).addEventListener("change",i),n.type="file");var o=document.createEvent("MouseEvents");o.initEvent("click",!0,!1),n.dispatchEvent(o)}))}};t.exports={data:n("data"),file:n("file"),directory:n("directory")}},function(t,e,r){"use strict";t.exports=function(t){var e=t.fs,r=t.files,n=t.os,i=t.path,o=t.child_process,a=t.mimetype,s=t.defaultArchives,u=t.request,f=t.downloadUrl,c=t.bytes,h=t.hash,d=t.pick,l=function(t){return function(e){for(var r={},n=0,i=t.length;n=400?n(new Error("Error ".concat(i.statusCode,"."))):r(new Uint8Array(e))}))}))}},m=function(t){return function(e){return function e(r){return function(n){return function(i){var o=function(t){return void 0===t.path?Promise.resolve():"application/bzz-manifest+json"===t.contentType?e(t.hash)(n+t.path)(i):Promise.resolve((r=n+t.path,function(t){return function(e){return e[r]=t,e}})(function(t){return{type:t.contentType,hash:t.hash}}(t))(i));var r};return b(t)(r).then((function(t){return JSON.parse(N(t)).entries})).then((function(t){return Promise.all(t.map(o))})).then((function(){return i}))}}}(e)("")({})}},y=function(t){return function(e){return m(t)(e).then((function(t){return l(Object.keys(t))(Object.keys(t).map((function(e){return t[e].hash})))}))}},v=function(t){return function(e){return m(t)(e).then((function(e){var r=Object.keys(e),n=r.map((function(t){return e[t].hash})),i=r.map((function(t){return e[t].type})),o=n.map(b(t));return Promise.all(o).then((function(t){return l(r)(function(t){return t.map((function(t,e){return{type:i[e],data:t}}))}(t))}))}))}},g=function(t){return function(e){return function(n){return r.download(p(t)(e))(n)}}},w=function(t){return function(e){return function(r){return y(t)(e).then((function(e){var n=[];for(var o in e)if(o.length>0){var a=i.join(r,o);n.push(g(t)(e[o])(a))}return Promise.all(n).then((function(){return r}))}))}}},_=function(t){return function(e){return new Promise((function(r,n){var i={body:"string"==typeof e?j(e):e,method:"POST"};u("".concat(t,"/bzz-raw:/"),i,(function(t,e){return t?n(t):r(e)}))}))}},k=function(t){return function(e){return function(r){return function(n){return function i(o){var a="/"===r[0]?r:"/"+r,s="".concat(t,"/bzz:/").concat(e).concat(a),f={method:"PUT",headers:{"Content-Type":n.type},body:n.data};return new Promise((function(t,e){u(s,f,(function(r,n){return r?e(r):-1!==n.indexOf("error")?e(n):t(n)}))})).catch((function(t){return o>0&&i(o-1)}))}(3)}}}},A=function(t){return function(e){return M(t)({"":e})}},S=function(t){return function(r){return e.readFile(r).then((function(e){return A(t)({type:a.lookup(r),data:e})}))}},M=function(t){return function(e){return _(t)("{}").then((function(r){return Object.keys(e).reduce((function(r,n){return r.then(function(r){return function(n){return k(t)(n)(r)(e[r])}}(n))}),Promise.resolve(r))}))}},E=function(t){return function(r){return e.readFile(r).then(_(t))}},x=function(t){return function(n){return function(i){return r.directoryTree(i).then((function(t){return Promise.all(t.map((function(t){return e.readFile(t)}))).then((function(e){var r=t.map((function(t){return t.slice(i.length)})),n=t.map((function(t){return a.lookup(t)||"text/plain"}));return l(r)(e.map((function(t,e){return{type:n[e],data:t}})))}))})).then((function(t){return(e=n?{"":t[n]}:{},function(t){var r={};for(var n in e)r[n]=e[n];for(var i in t)r[i]=t[i];return r})(t);var e})).then(M(t))}}},I=function(t){return function(e){if("data"===e.pick)return d.data().then(_(t));if("file"===e.pick)return d.file().then(A(t));if("directory"===e.pick)return d.directory().then(M(t));if(e.path)switch(e.kind){case"data":return E(t)(e.path);case"file":return S(t)(e.path);case"directory":return x(t)(e.defaultFile)(e.path)}else{if(e.length||"string"==typeof e)return _(t)(e);if(e instanceof Object)return M(t)(e)}return Promise.reject(new Error("Bad arguments"))}},O=function(t){return function(e){return function(r){return R(t)(e).then((function(n){return n?r?w(t)(e)(r):v(t)(e):r?g(t)(e)(r):b(t)(e)}))}}},P=function(t,e){var i=n.platform().replace("win32","windows")+"-"+("x64"===n.arch()?"amd64":"386"),o=(e||s)[i],a=f+o.archive+".tar.gz",u=o.archiveMD5,c=o.binaryMD5;return r.safeDownloadArchived(a)(u)(c)(t)},C=function(t){return new Promise((function(e,r){var n=o.spawn,i=function(t){return function(e){return-1!==(""+e).indexOf(t)}},a=t.account,s=t.password,u=t.dataDir,f=t.ensApi,c=t.privateKey,h=0,d=n(t.binPath,["--bzzaccount",a||c,"--datadir",u,"--ens-api",f]),l=function(t){0===h&&i("Passphrase")(t)?setTimeout((function(){h=1,d.stdin.write(s+"\n")}),500):i("Swarm http proxy started")(t)&&(h=2,clearTimeout(p),e(d))};d.stdout.on("data",l),d.stderr.on("data",l);var p=setTimeout((function(){return r(new Error("Couldn't start swarm process."))}),2e4)}))},B=function(t){return new Promise((function(e,r){t.stderr.removeAllListeners("data"),t.stdout.removeAllListeners("data"),t.stdin.removeAllListeners("error"),t.removeAllListeners("error"),t.removeAllListeners("exit"),t.kill("SIGINT");var n=setTimeout((function(){return t.kill("SIGKILL")}),8e3);t.once("close",(function(){clearTimeout(n),e()}))}))},T=function(t){return _(t)("test").then((function(t){return"c9a99c7d326dcc6316f32fe2625b311f6dc49a175e6877681ded93137d3569e7"===t})).catch((function(){return!1}))},R=function(t){return function(e){return b(t)(e).then((function(t){try{return!!JSON.parse(N(t)).entries}catch(t){return!1}}))}},U=function(t){return function(e,r,n,i,o){var a;return void 0!==e&&(a=t(e)),void 0!==r&&(a=t(r)),void 0!==n&&(a=t(n)),void 0!==i&&(a=t(i)),void 0!==o&&(a=t(o)),a}},N=function(t){return c.toString(c.fromUint8Array(t))},j=function(t){return c.toUint8Array(c.fromString(t))},L=function(t){return{download:function(e,r){return O(t)(e)(r)},downloadData:U(b(t)),downloadDataToDisk:U(g(t)),downloadDirectory:U(v(t)),downloadDirectoryToDisk:U(w(t)),downloadEntries:U(m(t)),downloadRoutes:U(y(t)),isAvailable:function(){return T(t)},upload:function(e){return I(t)(e)},uploadData:U(_(t)),uploadFile:U(A(t)),uploadFileFromDisk:U(A(t)),uploadDataFromDisk:U(E(t)),uploadDirectory:U(M(t)),uploadDirectoryFromDisk:U(x(t)),uploadToManifest:U(k(t)),pick:d,hash:h,fromString:j,toString:N}};return{at:L,local:function(t){return function(e){return T("http://localhost:8500").then((function(r){return r?e(L("http://localhost:8500")).then((function(){})):P(t.binPath,t.archives).onData((function(e){return(t.onProgress||function(){})(e.length)})).then((function(){return C(t)})).then((function(t){return e(L("http://localhost:8500")).then((function(){return t}))})).then(B)}))}},download:O,downloadBinary:P,downloadData:b,downloadDataToDisk:g,downloadDirectory:v,downloadDirectoryToDisk:w,downloadEntries:m,downloadRoutes:y,isAvailable:T,startProcess:C,stopProcess:B,upload:I,uploadData:_,uploadDataFromDisk:E,uploadFile:A,uploadFileFromDisk:S,uploadDirectory:M,uploadDirectoryFromDisk:x,uploadToManifest:k,pick:d,hash:h,fromString:j,toString:N}}}])})); //# sourceMappingURL=web3.min.js.map \ No newline at end of file diff --git a/dist/web3.min.js.map b/dist/web3.min.js.map index 8a2bfaadde2..9b51df83d55 100644 --- a/dist/web3.min.js.map +++ b/dist/web3.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/process/browser.js","webpack:///./packages/web3-core-helpers/lib/index.js","webpack:///./node_modules/underscore/underscore.js","webpack:///./packages/web3-eth-accounts/node_modules/inherits/inherits_browser.js","webpack:///./packages/web3-eth-accounts/node_modules/safe-buffer/index.js","webpack:///./packages/web3-eth-accounts/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///(webpack)/buildin/module.js","webpack:///./packages/web3-utils/lib/index.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/utils.js","webpack:///../src.ts/index.ts","webpack:///../../src.ts/coders/abstract-coder.ts","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./packages/web3-core/lib/index.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./packages/web3-core-method/lib/index.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./packages/web3-eth-accounts/node_modules/minimalistic-assert/index.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./packages/web3-eth-accounts/node_modules/sha.js/hash.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/brorand/index.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///../src.ts/_version.ts","webpack:///./node_modules/varint/index.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/asn1.js/lib/asn1.js","webpack:///./node_modules/asn1.js/lib/asn1/base/index.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/common.js","webpack:///./packages/web3-eth-accounts/node_modules/ethjs-util/lib/index.js","webpack:///../src/bytes.ts","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./packages/web3-core-promievent/lib/index.js","webpack:///./packages/web3-core-subscriptions/lib/index.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./packages/web3-net/lib/index.js","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/parse-asn1/index.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/eth-lib/lib/hash.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/eventemitter3/index.js","webpack:///./node_modules/node-libs-browser/node_modules/stream-http/index.js","webpack:///./node_modules/node-libs-browser/node_modules/events/events.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///../xml-http-request-event-target.ts","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curves.js","webpack:///../src.ts/fragments.ts","webpack:///../src.ts/utf8.ts","webpack:///./node_modules/multihashes/src/index.js","webpack:///./node_modules/eth-lib/lib/bytes.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./packages/web3-eth-accounts/node_modules/secp256k1/elliptic.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/curves.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash.js","webpack:///../src/index.ts","webpack:///./node_modules/object-assign/index.js","webpack:///../src/hash.ts","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/is-callable/index.js","webpack:///./node_modules/node-libs-browser/node_modules/util/util.js","webpack:///./node_modules/ethjs-unit/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/strip-hex-prefix/src/index.js","webpack:///./packages/web3-utils/lib/utils.js","webpack:///./packages/web3-eth-iban/lib/index.js","webpack:///./packages/web3-core-requestmanager/lib/jsonrpc.js","webpack:///./node_modules/punycode/punycode.js","webpack:///./node_modules/node-libs-browser/node_modules/stream-http/lib/capability.js","webpack:///./node_modules/node-libs-browser/node_modules/stream-http/lib/response.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/node-libs-browser/node_modules/timers-browserify/main.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/xtend/immutable.js","webpack:///./node_modules/https-browserify/index.js","webpack:///../src.ts/bignumber.ts","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./packages/web3-eth-ens/lib/config.js","webpack:///./packages/web3-eth-contract/lib/index.js","webpack:///./packages/web3-eth-abi/lib/index.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///../src.ts/abi-coder.ts","webpack:///../../src.ts/coders/array.ts","webpack:///../../src.ts/coders/bytes.ts","webpack:///./node_modules/@babel/runtime/helpers/get.js","webpack:///./node_modules/eth-ens-namehash/index.js","webpack:///./node_modules/multicodec/src/util.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/cids/src/index.js","webpack:///./node_modules/base-x/src/index.js","webpack:///./node_modules/cids/node_modules/multicodec/src/util.js","webpack:///./packages/web3-eth-personal/lib/index.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/pbkdf2/browser.js","webpack:///./node_modules/pbkdf2/lib/precondition.js","webpack:///./node_modules/pbkdf2/lib/default-encoding.js","webpack:///./node_modules/pbkdf2/lib/sync-browser.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/miller-rabin/lib/mr.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///./node_modules/public-encrypt/mgf.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/eth-lib/lib/rlp.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///../src/transaction.ts","webpack:///./packages/web3-eth-accounts/node_modules/create-hash/browser.js","webpack:///./packages/web3-eth-accounts/node_modules/hash-base/index.js","webpack:///./packages/web3-eth-accounts/node_modules/sha.js/sha256.js","webpack:///./packages/web3-eth-accounts/node_modules/sha.js/sha512.js","webpack:///./packages/web3-eth-accounts/node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./packages/web3-eth-accounts/node_modules/brorand/index.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/sha/common.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/sha/256.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/sha/512.js","webpack:///./packages/web3-eth-accounts/node_modules/is-hex-prefixed/src/index.js","webpack:///./node_modules/assert/assert.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/string.prototype.trim/implementation.js","webpack:///./node_modules/es-abstract/GetIntrinsic.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/string.prototype.trim/polyfill.js","webpack:///./node_modules/swarm-js/node_modules/eth-lib/lib/bytes.js","webpack:///./packages/web3/lib/index.js","webpack:///./packages/web3-core-requestmanager/lib/index.js","webpack:///./node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js","webpack:///./packages/web3-core-helpers/lib/errors.js","webpack:///./packages/web3-core-helpers/lib/formatters.js","webpack:///./node_modules/ethjs-unit/lib/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/ethjs-unit/node_modules/number-to-bn/src/index.js","webpack:///./node_modules/is-hex-prefixed/src/index.js","webpack:///./node_modules/number-to-bn/src/index.js","webpack:///./node_modules/number-to-bn/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/utf8/utf8.js","webpack:///./node_modules/ethereum-bloom-filters/dist/index.js","webpack:///./node_modules/ethereum-bloom-filters/dist/utils.js","webpack:///./node_modules/ethereum-bloom-filters/node_modules/js-sha3/src/sha3.js","webpack:///./packages/web3-utils/lib/soliditySha3.js","webpack:///./packages/web3-core-requestmanager/lib/batch.js","webpack:///./packages/web3-core-requestmanager/lib/givenProvider.js","webpack:///./packages/web3-providers-ws/lib/index.js","webpack:///./packages/web3-providers-ws/lib/helpers.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/websocket/lib/browser.js","webpack:///./node_modules/es5-ext/global.js","webpack:///./node_modules/websocket/lib/version.js","webpack:///./packages/web3-providers-http/lib/index.js","webpack:///../index.ts","webpack:///../xml-http-request.ts","webpack:///./node_modules/node-libs-browser/node_modules/stream-http/lib/request.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/to-arraybuffer/index.js","webpack:///./node_modules/builtin-status-codes/browser.js","webpack:///./node_modules/os-browserify/browser.js","webpack:///../progress-event.ts","webpack:///../errors.ts","webpack:///../xml-http-request-upload.ts","webpack:///./node_modules/cookiejar/cookiejar.js","webpack:///./packages/web3-providers-ipc/lib/index.js","webpack:///./node_modules/oboe/dist/oboe-browser.js","webpack:///./packages/web3-core/lib/extend.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./packages/web3-core-subscriptions/lib/subscription.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack:///../src.ts/fixednumber.ts","webpack:///./node_modules/@ethersproject/keccak256/node_modules/js-sha3/src/sha3.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./packages/web3-eth/lib/index.js","webpack:///./packages/web3-eth-ens/lib/index.js","webpack:///./packages/web3-eth-ens/lib/ENS.js","webpack:///./packages/web3-eth-ens/lib/contracts/Registry.js","webpack:///../../src.ts/coders/address.ts","webpack:///./node_modules/@ethersproject/abi/node_modules/js-sha3/src/sha3.js","webpack:///../../src.ts/coders/anonymous.ts","webpack:///../../src.ts/coders/boolean.ts","webpack:///./node_modules/@babel/runtime/helpers/superPropBase.js","webpack:///../../src.ts/coders/fixed-bytes.ts","webpack:///../../src.ts/coders/null.ts","webpack:///../../src.ts/coders/number.ts","webpack:///../../src.ts/coders/string.ts","webpack:///../src.ts/bytes32.ts","webpack:///../src.ts/idna.ts","webpack:///../../src.ts/coders/tuple.ts","webpack:///../src.ts/interface.ts","webpack:///./node_modules/@ethersproject/hash/node_modules/js-sha3/src/sha3.js","webpack:///./node_modules/eth-ens-namehash/node_modules/js-sha3/src/sha3.js","webpack:///./node_modules/idna-uts46-hx/uts46.js","webpack:///./node_modules/idna-uts46-hx/idna-map.js","webpack:///./packages/web3-eth-ens/lib/resources/ABI/Registry.js","webpack:///./packages/web3-eth-ens/lib/resources/ABI/Resolver.js","webpack:///./packages/web3-eth-ens/lib/lib/ResolverMethodHandler.js","webpack:///./packages/web3-eth-ens/lib/lib/contentHash.js","webpack:///./node_modules/content-hash/src/index.js","webpack:///./node_modules/multicodec/src/index.js","webpack:///./node_modules/varint/encode.js","webpack:///./node_modules/varint/decode.js","webpack:///./node_modules/varint/length.js","webpack:///./node_modules/multicodec/src/int-table.js","webpack:///./node_modules/multicodec/src/varint-table.js","webpack:///./node_modules/multicodec/src/constants.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/multicodec/src/print.js","webpack:///./node_modules/content-hash/src/profiles.js","webpack:///./node_modules/multihashes/node_modules/multibase/src/index.js","webpack:///./node_modules/multihashes/node_modules/multibase/src/constants.js","webpack:///./node_modules/multihashes/node_modules/multibase/src/base.js","webpack:///./node_modules/multihashes/node_modules/multibase/src/base16.js","webpack:///./node_modules/multihashes/node_modules/multibase/src/base32.js","webpack:///./node_modules/multihashes/node_modules/multibase/src/base64.js","webpack:///./node_modules/multihashes/src/constants.js","webpack:///./node_modules/multibase/src/index.js","webpack:///./node_modules/multibase/src/constants.js","webpack:///./node_modules/multibase/src/base.js","webpack:///./node_modules/multibase/src/base16.js","webpack:///./node_modules/multibase/src/base32.js","webpack:///./node_modules/multibase/src/base64.js","webpack:///./node_modules/cids/node_modules/multicodec/src/index.js","webpack:///./node_modules/cids/node_modules/multicodec/src/int-table.js","webpack:///./node_modules/cids/node_modules/multicodec/src/varint-table.js","webpack:///./node_modules/cids/node_modules/multicodec/src/constants.js","webpack:///./node_modules/cids/node_modules/multicodec/src/print.js","webpack:///./node_modules/cids/src/cid-util.js","webpack:///./node_modules/class-is/index.js","webpack:///./node_modules/@babel/runtime/helpers/construct.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/content-hash/src/helpers.js","webpack:///./packages/web3-eth-accounts/lib/index.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/eth-lib/lib/account.js","webpack:///./node_modules/eth-lib/lib/array.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/pbkdf2/lib/async.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/asn1.js/lib/asn1/api.js","webpack:///./node_modules/vm-browserify/index.js","webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///./node_modules/asn1.js/lib/asn1/base/node.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./node_modules/randomfill/browser.js","webpack:///./node_modules/eth-lib/lib/nat.js","webpack:///./node_modules/scrypt-js/scrypt.js","webpack:///./node_modules/uuid/index.js","webpack:///./node_modules/uuid/v1.js","webpack:///./node_modules/uuid/v4.js","webpack:///./packages/web3-eth-accounts/node_modules/secp256k1/lib/index.js","webpack:///./packages/web3-eth-accounts/node_modules/secp256k1/lib/assert.js","webpack:///./packages/web3-eth-accounts/node_modules/secp256k1/lib/der.js","webpack:///./packages/web3-eth-accounts/node_modules/bip66/index.js","webpack:///./packages/web3-eth-accounts/node_modules/secp256k1/lib/elliptic/index.js","webpack:///./packages/web3-eth-accounts/node_modules/md5.js/index.js","webpack:///./packages/web3-eth-accounts/node_modules/ripemd160/index.js","webpack:///./packages/web3-eth-accounts/node_modules/sha.js/index.js","webpack:///./packages/web3-eth-accounts/node_modules/sha.js/sha.js","webpack:///./packages/web3-eth-accounts/node_modules/sha.js/sha1.js","webpack:///./packages/web3-eth-accounts/node_modules/sha.js/sha224.js","webpack:///./packages/web3-eth-accounts/node_modules/sha.js/sha384.js","webpack:///./packages/web3-eth-accounts/node_modules/cipher-base/index.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/sha.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/sha/1.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/sha/224.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/sha/384.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/ripemd.js","webpack:///./packages/web3-eth-accounts/node_modules/hash.js/lib/hash/hmac.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./packages/web3-eth-accounts/node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./packages/web3-eth-accounts/node_modules/strip-hex-prefix/src/index.js","webpack:///../src/constants.ts","webpack:///../src/account.ts","webpack:///./packages/web3-eth-accounts/node_modules/keccak/js.js","webpack:///./packages/web3-eth-accounts/node_modules/keccak/lib/api/index.js","webpack:///./packages/web3-eth-accounts/node_modules/keccak/lib/api/keccak.js","webpack:///./packages/web3-eth-accounts/node_modules/keccak/lib/api/shake.js","webpack:///./packages/web3-eth-accounts/node_modules/keccak/lib/keccak.js","webpack:///./packages/web3-eth-accounts/node_modules/keccak/lib/keccak-state-unroll.js","webpack:///../src/signature.ts","webpack:///../src/object.ts","webpack:///../../src/chains/index.ts","webpack:///../../src/hardforks/index.ts","webpack:///../src/fake.ts","webpack:///./packages/web3-eth/lib/getNetworkType.js","webpack:///./packages/web3-shh/lib/index.js","webpack:///./packages/web3-bzz/lib/index.js","webpack:///./node_modules/swarm-js/lib/api-browser.js","webpack:///./node_modules/xhr-request/index.js","webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/url-set-query/index.js","webpack:///./node_modules/xhr-request/lib/ensure-header.js","webpack:///./node_modules/xhr-request/lib/request-browser.js","webpack:///./node_modules/xhr/index.js","webpack:///./node_modules/global/window.js","webpack:///./node_modules/is-function/index.js","webpack:///./node_modules/parse-headers/parse-headers.js","webpack:///./node_modules/string.prototype.trim/index.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/es-abstract/es5.js","webpack:///./node_modules/es-abstract/helpers/assertRecord.js","webpack:///./node_modules/es-abstract/helpers/isNaN.js","webpack:///./node_modules/es-abstract/helpers/isFinite.js","webpack:///./node_modules/es-abstract/helpers/sign.js","webpack:///./node_modules/es-abstract/helpers/mod.js","webpack:///./node_modules/es-to-primitive/es5.js","webpack:///./node_modules/es-to-primitive/helpers/isPrimitive.js","webpack:///./node_modules/string.prototype.trim/shim.js","webpack:///./node_modules/for-each/index.js","webpack:///./node_modules/xhr-request/lib/normalize-response.js","webpack:///./node_modules/swarm-js/node_modules/eth-lib/lib/array.js","webpack:///./node_modules/swarm-js/lib/swarm-hash.js","webpack:///./node_modules/swarm-js/node_modules/eth-lib/lib/hash.js","webpack:///./node_modules/swarm-js/lib/pick.js","webpack:///./node_modules/swarm-js/lib/swarm.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","obj","_typeof","iterator","constructor","base64","require","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","length","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","this","Error","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","slice","fromString","isBuffer","len","checked","copy","buffer","val","type","data","fromObject","assertSize","size","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","apply","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","e","typedArraySupport","poolSize","_augment","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","ctor","superCtor","super_","writable","TempCtor","assert","msg","inherits","BN","number","base","endian","isBN","negative","words","red","_init","wordSize","parseHex","parseBase","num","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","strip","toArray","ceil","w","off","limbLen","limbPow","total","mod","word","imuln","_iaddn","dest","clone","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","self","carry","k","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modn","idivn","toNumber","toBuffer","toArrayLike","ArrayType","reqLength","q","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","z","inv","wnd","current","currentLen","mont","u","copyProps","SafeBuffer","instance","Constructor","_defineProperties","props","descriptor","protoProps","staticProps","Function","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","args","title","browser","env","argv","version","versions","on","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","errors","formatters","previousUnderscore","ArrayProto","ObjProto","SymbolProto","nativeIsArray","nativeKeys","keys","nativeCreate","Ctor","_wrapped","nodeType","VERSION","builtinIteratee","optimizeCb","func","context","argCount","index","collection","accumulator","cb","iteratee","identity","isFunction","isObject","matcher","restArguments","startIndex","rest","baseCreate","result","shallowProperty","has","path","deepGet","MAX_ARRAY_INDEX","getLength","isArrayLike","each","forEach","map","collect","results","currentKey","createReduce","reducer","memo","initial","reduce","foldl","inject","reduceRight","foldr","find","detect","predicate","findIndex","findKey","filter","select","reject","negate","every","all","some","any","contains","include","item","fromIndex","guard","values","invoke","contextPath","method","pluck","where","attrs","findWhere","computed","lastComputed","v","shuffle","sample","random","last","rand","temp","sortBy","criteria","sort","group","behavior","partition","groupBy","indexBy","countBy","reStrSymbol","isString","pass","first","head","take","tail","drop","compact","Boolean","flatten","shallow","strict","idx","isArguments","without","otherArrays","difference","uniq","unique","isSorted","isBoolean","seen","union","arrays","intersection","argsLength","unzip","zip","createPredicateIndexFinder","findLastIndex","sortedIndex","low","high","createIndexFinder","predicateFind","range","stop","step","chunk","count","executeBound","sourceFunc","boundFunc","callingContext","bound","callArgs","partial","boundArgs","placeholder","position","bindAll","memoize","hasher","cache","address","delay","wait","defer","throttle","options","previous","later","leading","now","throttled","trailing","cancel","debounce","immediate","debounced","callNow","wrap","wrapper","compose","after","times","before","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","proto","prop","allKeys","mapObject","pairs","invert","functions","methods","names","createAssigner","keysFunc","defaults","source","extend","extendOwn","assign","deepEq","keyInObj","pick","omit","tap","interceptor","isMatch","aStack","bStack","className","valueOf","areArrays","aCtor","bCtor","pop","isEqual","isEmpty","isElement","nodelist","document","childNodes","Int8Array","isSymbol","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","propertyOf","matches","accum","Date","getTime","escapeMap","unescapeMap","createEscaper","escaper","testRegexp","RegExp","replaceRegexp","test","escape","unescape","fallback","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","escapeRegExp","escapeChar","template","text","settings","oldSettings","render","variable","argument","chain","_chain","chainResult","mixin","_getPrototypeOf","setPrototypeOf","getPrototypeOf","webpackPolyfill","deprecate","paths","children","ethjsUnit","utils","soliditySha3","randombytes","_flattenTypes","includeTuple","puts","types","param","components","substring","suffix","arrayBracket","hexToAscii","hex","isHexStrict","asciiToHex","getUnitValue","unit","unitMap","JSON","stringify","_fireError","error","emitter","callback","optionalData","message","catch","_jsonInterfaceMethodToString","json","inputs","randomHex","isBigNumber","isHex","sha3","sha3Raw","keccak256","soliditySha3Raw","encodePacked","isAddress","checkAddressChecksum","toChecksumAddress","addressHash","checksumAddress","toUpperCase","toBN","bytesToHex","hexToBytes","hexToNumberString","hexToNumber","toDecimal","numberToHex","fromDecimal","hexToUtf8","hexToString","toUtf8","utf8ToHex","stringToHex","fromUtf8","toAscii","fromAscii","toWei","fromWei","padLeft","leftPad","padRight","rightPad","toTwosComplement","isBloom","isUserEthereumAddressInBloom","isContractAddressInBloom","isTopic","isTopicInBloom","isInBloom","compareBlockNumbers","bnA","bnB","equal","subClass","superClass","assertThisInitialized","minAssert","minUtils","zero2","encode","getNAF","naf","getJSF","k1","k2","jsf","d1","d2","u1","u2","m8","m14","m24","cachedProperty","computer","parseBytes","intFromLE","isSurrogatePair","htonl","zero8","enc","toHex32","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","ah","al","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","ch","cl","dh","dl","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","final","_final","__final","_decoder","_encoding","update","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","err","_flush","done","fin","requestManager","packageInit","pkg","_provider","setProvider","_requestManager","Manager","givenProvider","providers","provider","net","setRequestManager","manager","BatchRequest","BatchManager","addProviders","crypto","msCrypto","getRandomValues","generated","pna","objectKeys","Duplex","util","Readable","Writable","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","promiEvent","Subscriptions","subscriptions","EthersTransactionUtils","Method","params","inputFormatter","outputFormatter","transformPayload","extraFormatters","abiCoder","accounts","defaultBlock","defaultAccount","transactionBlockTimeout","transactionConfirmationBlocks","transactionPollingTimeout","defaultCommon","defaultChain","defaultHardfork","handleRevert","createFunction","buildCall","attachToObject","getCall","extractCallback","validateArgs","InvalidNumberOfParams","formatInput","_this","formatter","formatOutput","toPayload","payload","_confirmTransaction","promiseResolved","canUnsubscribe","timeoutCount","confirmationCount","intervalId","lastBlock","gasProvided","gas","isContractDeployment","to","hasBytecode","_ethereumCalls","inputBlockNumberFormatter","outputBlockFormatter","outputTransactionReceiptFormatter","inputAddressFormatter","inputDefaultBlockNumberFormatter","outputTransactionFormatter","subscriptionName","_ethereumCall","mthd","checkConfirmation","existingReceipt","isPolling","blockHeader","unsubscribe","clearInterval","resolve","getTransactionReceipt","eventEmitter","then","receipt","blockHash","receiptFormatter","getBlockByNumber","latestBlock","latestBlockHash","hash","block","blockNumber","contractAddress","NoContractAddressFoundError","getCode","status","contractDeployFormatter","ContractCodeNotStoredError","outOfGas","gasUsed","revertMessage","txReplayOptions","rawTransactionHex","parsedTx","parse","inputTransactionFormatter","gasLimit","toHexString","gasPrice","getRevertReason","TransactionRevertInstructionError","reason","signature","TransactionRevertedWithoutReasonError","TransactionOutOfGasError","TransactionError","startWatching","startInterval","setInterval","subscribe","getWallet","wallet","privateKey","isSendTx","isCall","send","sendTxCallback","reasonData","isRevertReasonString","decodeParameter","RevertInstructionError","sendSignedTx","sign","signedPayload","rawTransaction","sendRequest","tx","txOptions","hardfork","common","signTransaction","getGasPrice","request","Promise","format","Stream","EE","EventEmitter","PassThrough","pipe","ondata","pause","ondrain","resume","_isStdio","onclose","didOnEnd","destroy","onerror","er","cleanup","listenerCount","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","_len","assigned","remainder","digest","rem","lowBits","highBits","_hash","punycode","Url","protocol","slashes","auth","host","port","hostname","search","query","pathname","href","urlParse","relative","resolveObject","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","url","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","exec","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","unshift","toASCII","ae","esc","encodeURIComponent","qm","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","hasTrailingSlash","up","splice","isAbsolute","objectToString","isRegExp","isDate","isError","isPrimitive","Rand","generate","_rand","getBytes","getByte","randomBytes","sha","ripemd","hmac","sha1","sha256","sha224","sha384","sha512","ripemd160","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","decode","encodingLength","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","MD5","RIPEMD160","Base","alg","asn1","bignum","constants","decoders","encoders","Reporter","DecoderBuffer","EncoderBuffer","Node","isHexPrefixed","stripHexPrefix","padToEven","intToHex","arrayContainsArray","superset","subset","intToBuffer","getBinarySize","stringValue","getKeys","allowEmpty","isHexString","fn","arg1","arg2","arg3","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","PromiEvent","justPromise","_events","promise","Subscription","rm","console","warn","subscription","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","I","repr","nafW","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","_encode","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","core","Net","rng","pseudoRandomBytes","prng","createHash","createHmac","Hmac","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","aes","Cipher","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","asUInt32Array","scrubVec","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","AES","_key","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","decryptBlock","m1","scrub","password","salt","keyBits","ivLen","keyLen","iv","used","keyStart","ivStart","elliptic","curves","ec","eddsa","aesid","fixProc","ciphers","compat","parseKeys","passphrase","subtype","ndata","stripped","tag","certificate","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","pub_key","DSAparam","decrypt","kde","kdeparams","iters","algo","cipher","cipherText","keylen","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","HEX_CHARS","KECCAK_PADDING","SHIFT","RC","f","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","b10","b11","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","keccak","state","blocks","byteCount","blockCount","outputBlocks","reset","lastByteIndex","Keccak","keccak512","keccak256s","keccak512s","__webpack_amd_options__","Events","event","listener","evt","_eventsCount","clearEvent","eventNames","events","getOwnPropertySymbols","handlers","ee","prefixed","ClientRequest","response","statusCodes","http","opts","defaultProtocol","location","headers","req","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertyNames","NumberIsNaN","init","eventListener","errorListener","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","existing","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","setMaxListeners","getMaxListeners","doError","handler","originalListener","spliceOne","rawListeners","CorkedRequest","entry","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","stream","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","hasInstance","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","asyncGeneratorStep","gen","_next","_throw","info","pre","PresetCurve","short","edwards","isInfinity","defineCurve","lambda","basis","node","UnicodeNormalizationForm","Utf8ErrorReason","multibase","varint","cs","multihash","codes","defaultLengths","fromHexString","toB58String","fromB58String","encoded","isValidCode","hashfn","coerceCode","isAppCode","at","fromArray","rnd","bs","reverse","rev","pad","ascii","makeByte","uint8","ci","fromNumber","fromNat","bn","toNat","fromUint8Array","toUint8Array","HashBase","ARRAY16","_a","_b","_c","_d","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","zl","zr","sl","sr","hl","hr","_e","fn1","fn2","fn3","fn4","fn5","ar","br","cr","dr","tl","tr","Algorithm","DES","CBC","EDE","deciphers","modes","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","crt","priv","blinds","getr","blinder","modulus","publicExponent","unblinder","blind","blinded","prime1","prime2","qinv","coefficient","exponent1","m2","exponent2","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","symbols","implementation","fnToStr","constructorRegex","isES6ClassFn","fnStr","toStr","hasToStringTag","tryFunctionObject","strClass","getOwnPropertyDescriptors","descriptors","getOwnPropertyDescriptor","formatRegExp","objects","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","cur","numLinesEst","reduceToSingleString","desc","line","debuglog","NODE_DEBUG","pid","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","log","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","original","promiseResolve","promiseReject","defineProperties","custom","callbackify","callbackified","maybeCb","rej","numberToBN","utf8","ethereumBloomFilters","SHA3_NULL_S","returnValue","_Hash","bloom","ethereumAddress","topic","returnType","chars","hasPrefix","BigNumber","iso13616Prepare","iban","Z","mod9710","Iban","_iban","toAddress","ib","isDirect","toIban","fromAddress","padded","fromBban","bban","checkDigit","countryCode","createIndirect","institution","identifier","isValid","isIndirect","checksum","client","base36","asBn","Jsonrpc","messageId","jsonrpc","validateSingleMessage","messages","freeExports","freeModule","freeGlobal","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","parts","ucs2decode","extra","counter","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","fetch","ReadableStream","writableStream","WritableStream","abortController","AbortController","blobConstructor","Blob","xhr","getXHR","XMLHttpRequest","open","XDomainRequest","checkTypeSupport","responseType","haveArrayBuffer","haveSlice","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","vbArray","VBArray","capability","rStates","readyStates","UNSENT","OPENED","HEADERS_RECEIVED","LOADING","DONE","fetchTimer","_mode","rawHeaders","trailers","rawTrailers","_fetchResponse","statusCode","statusMessage","statusText","header","_destroyed","_resumeFetch","close","abort","body","pipeTo","reader","getReader","_xhr","_pos","responseURL","getAllResponseHeaders","_charset","mimeType","charsetMatch","_read","_onXHRProgress","readyState","responseBody","responseText","newData","MSStreamReader","onprogress","onload","readAsArrayBuffer","ReadableState","EElistenerCount","debugUtil","debug","BufferList","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","decoder","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","isPaused","setEncoding","howMuchToRead","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","clear","hasStrings","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onfinish","cleanedUp","pipeOnDrain","increasedAwaitDrain","dests","ev","paused","_fromList","emitErrorNT","readableDestroyed","writableDestroyed","scope","Timeout","clearFn","_id","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","flush","_this2","err2","https","validateParams","other","toBigNumber","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","SHA256","W","T1","T2","sha512_K","SHA512","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","fh","fl","gh","gl","hh","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","K","V","entropy","entropyEnc","nonce","nonceEnc","pers","persEnc","seed","_hmac","kmac","reseed","addEnc","addresses","main","ropsten","rinkeby","goerli","interfaceIds","addr","setAddr","pubkey","setPubkey","contenthash","setContenthash","content","setContent","abi","Contract","jsonInterface","clearSubscriptions","ContractMissingABIError","lastArg","_getOrSetDefaultOptions","_address","_jsonInterface","funcName","stateMutability","payable","encodeFunctionSignature","_createTxObject","parent","cascadeFunc","nextMethod","encodeEventSignature","_on","allEvents","_ethAccounts","_getCallback","_checkListener","ContractReservedEventError","_encodeEventABI","topics","anonymous","indexedTopics","indexed","encodeParameter","_decodeEventABI","outputLogFormatter","intf","indexedInputs","argTopics","returnValues","decodeLog","__length__","raw","_encodeMethodABI","methodSignature","_method","paramsABI","_parent","encodeParameters","_deployData","startsWith","_decodeMethodReturn","outputs","decodeParameters","deploy","ContractMissingDeployDataError","deployData","_generateEventOptions","eventName","ContractEventDoesNotExistError","ContractNoAddressDefinedError","ContractOnceRequiresCallbackError","fromBlock","subOptions","toBlock","inputLogFormatter","subscriptionHandler","removed","getPastEvents","getPastLogs","txObject","_executeMethod","encodeABI","estimateGas","_processExecuteArguments","processedArgs","generateRequest","ethAccounts","inputCallFormatter","ContractNoFromAddressDefinedError","logs","newContract","sendTransaction","EthersAbiCoder","AbiCoder","ParamType","ethersAbiCoder","Result","ABICoder","functionName","mapTypes","formatParam","modifyParams","coder","_getCoder","coders","mappedTypes","isSimplifiedStructFormat","structName","mapStructNameAndType","mapStructToCoderFormat","struct","paramTypeBytes","paramTypeBytesArray","paramTypeNumber","paramTypeNumberArray","maxSize","encodeFunctionCall","decodeParametersWith","loose","decodedValue","notIndexedInputs","indexedParams","topicCount","staticType","nonIndexedData","notIndexedParams","_setPrototypeOf","ReferenceError","superPropBase","_get","keccak_256","uts46","normalize","toUnicode","useStd3ASCII","transitional","inputName","labels","labelSha","bufferToNumber","numberToBuffer","hexString","varintBufferEncode","varintBufferDecode","varintEncode","arrayLikeToArray","minLen","arr2","mh","multicodec","codecs","CIDUtil","_CID","withIs","codec","multibaseName","isCID","cid","baseName","isEncoded","getCodec","rmPrefix","CID","validateCID","for","toBaseEncodedString","_buffer","getCodeVarint","errorMsg","checkCIDComponents","symbolName","_Buffer","ALPHABET","BASE_MAP","xc","BASE","LEADER","FACTOR","iFACTOR","decodeUnsafe","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","Personal","inputSignFormatter","_finalized","throwIfNotStringOrBuffer","Sha256","_w","maj","sigma0","sigma1","gamma0","_f","_g","_h","H","Sha512","Ch","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","Legacy","md5","ZEROS","blocksize","_alg","ipad","_ipad","opad","_opad","MAX_ALLOC","checkBuffer","iterations","checkParameters","sizes","rmd160","saltLen","shaFunc","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","T","U","incr32","getBlock","_cipher","_prev","encrypt","chunkNum","_cache","GHASH","StreamCipher","ck","_ghash","_finID","ghash","toPad","ivBits","calcIv","_secCache","_decrypt","_alen","_authTag","_called","rump","xorTest","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","ONE","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","n2","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","reporter","save","restore","fail","skip","_reporterState","_reverse","der","DERDecoder","entity","tree","DERNode","derDecodeTag","cls","tagClass","oct","tagStr","derDecodeLen","_decode","_peekTag","decodedTag","_decodeTag","_skipUntilEnd","_decodeList","possibleEnd","_decodeStr","unused","numstr","_isNumstr","printstr","_isPrintstr","_decodeObjid","identifiers","ident","subident","second","_decodeTime","year","mon","day","hour","sec","UTC","_decodeNull","_decodeBool","_decodeInt","_use","_getDecoder","DEREncoder","_encodeComposite","encodedTag","tagByName","tagClassByName","encodeTag","_createEncoderBuffer","lenOctets","_encodeStr","_encodeObjid","objid","_encodeTime","date","getFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","_encodeNull","_encodeInt","numArray","_encodeBool","_getEncoder","_skipDefault","dataBuffer","_baseState","defaultBuffer","_encodeValue","i2ops","paddedMsg","uint","dataTree","parseTree","parseList","parseLength","lim","rnds8","rnds","byteToHex","bth","ethereumjs_util_1","Transaction","objectAssign","hasOwn","pSlice","functionsHaveNames","pToString","arrbuf","DataView","ok","regex","getName","truncate","something","rawname","expected","operator","stackStartFunction","AssertionError","_deepEqual","memos","multiline","lastIndex","ignoreCase","Float32Array","Float64Array","actualIndex","actualVisitedObjects","aIsArgs","bIsArgs","ka","kb","objEquiv","expectedException","isPrototypeOf","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","getMessage","captureStackTrace","stack","fn_name","next_line","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","hasSymbols","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicates","isArgs","callee","ES","leftWhitespace","rightWhitespace","S","ToString","CheckObjectCoercible","ThrowTypeError","getProto","asyncGenIterator","TypedArray","INTRINSICS","entries","asyncIterator","Atomics","decodeURI","encodeURI","eval","EvalError","Int16Array","Int32Array","Map","Proxy","Set","SharedArrayBuffer","SyntaxError","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakSet","allowMissing","Eth","Shh","Bzz","Web3","eth","shh","bzz","RequestManager","WebsocketProvider","HttpProvider","IpcProvider","connect","connected","deprecatedResult","resubscribe","_isCleanCloseEvent","_isIpcCloseError","ConnectionCloseError","delete","InvalidProvider","jsonrpcPayload","jsonrpcResultCallback","_jsonrpcResultCallback","callbackRequest","sendAsync","sendBatch","toBatchPayload","InvalidResponse","addSubscription","removeSubscription","keepIsSyncing","wasClean","ErrorResponse","isValidResponse","got","InvalidConnection","ConnectionError","ConnectionTimeout","ms","ConnectionNotOpenError","MaxAttemptsReachedOnReconnectingError","PendingRequestsOnReconnectingError","ResolverMethodMissingError","outputBigNumberFormatter","isPredefinedBlockNumber","_txInputFormatter","transactionIndex","transactionHash","logIndex","shaId","inputPostFormatter","post","ttl","workToProve","priority","toTopic","inputStorageKeysFormatter","outputProofFormatter","proof","balance","cumulativeGasUsed","difficulty","totalDifficulty","transactions","miner","outputPostFormatter","expiry","sent","workProved","outputSyncingFormatter","startingBlock","currentBlock","highestBlock","knownStates","pulledStates","negative1","getValueOfUnit","unitInput","unitValue","numberToString","dividedToIntegerBy","toPrecision","weiInput","optionsInput","wei","baseLength","fraction","whole","commify","etherInput","ether","comps","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","multiplier","formattedString","stringArg","byteIndex","checkScalarValue","createByte","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","byteString","utils_1","bitpos","codePointToInt","addSlice","isByteArray","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","CSHAKE_PADDING","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","algorithms","bytepad","Kmac","methodNames","methodName","newMethodName","finalized","notString","encodeString","strs","paddingBytes","finalize","arrayBuffer","_parseNumber","_solidityPack","arraySize","_elementaryName","typesize","_parseTypeN","_processSolidityEncodePackedArgs","_parseTypeNArray","hexArgs","Batch","requests","execute","ethereum","web3","currentProvider","connection","helpers","Ws","w3cwebsocket","_customTimeout","reconnectOptions","auto","maxAttempts","onTimeout","reconnect","clientConfig","requestOptions","DATA","CLOSE","ERROR","CONNECT","RECONNECT","requestQueue","responseQueue","reconnectAttempts","reconnecting","parsedURL","parseURL","username","authorization","btoa","OPEN","_addSocketListeners","_onMessage","_parseResponse","_onConnect","_onClose","_removeSocketListeners","addEventListener","removeEventListener","lastChunk","lastChunkTimeout","CONNECTING","disconnect","supportsSubscriptions","isNode","isRN","navigator","product","_btoa","URL","newURL","qs","sep","regexp","maxKeys","kstr","vstr","stringifyPrimitive","ks","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","W3CWebSocket","uri","protocols","__global__","XHR2","withCredentials","agent","keepAlive","httpsAgent","httpAgent","_prepareRequest","agents","baseUrl","nodejsSet","setRequestHeader","onreadystatechange","ontimeout","toArrayBuffer","preferBinary","_opts","_body","_headers","setHeader","useFetch","decideMode","_fetchTimer","_onFinish","lowerName","unsafeHeaders","getHeader","removeHeader","headersObj","headersList","keyName","signal","controller","_fetchAbortController","requestTimeout","credentials","_connect","_response","statusValid","flushHeaders","setNoDelay","setSocketKeepAlive","_classCallCheck","registerImmediate","html","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","createElement","documentElement","script","removeChild","appendChild","attachEvent","task","config","localStorage","arrayCopy","endianness","loadavg","uptime","freemem","MAX_VALUE","totalmem","cpus","release","appVersion","networkInterfaces","getNetworkInterfaces","arch","platform","tmpdir","tmpDir","EOL","homedir","ProgressEvent","CookieAccessInfo","domain","secure","Cookie","cookiestr","request_domain","request_path","expiration_date","explicit_path","explicit_domain","noscript","All","freeze","toGMTString","toValueString","cookie_str_splitter","CookieJar","cookies","cookies_list","setCookie","cookie","remove","collidesWith","getCookie","cookie_name","access_info","getCookies","pair","access_domain","cookie_domain","wildcard","setCookies","successful","oboe","responseCallbacks","notificationCallbacks","addDefaultEvents","load","_timeout","_addResponseCallback","__webpack_exports__","partialComplete","compose2","attr","lazyUnion","varArgs","flip","lazyIntersection","always","functor","__WEBPACK_IMPORTED_MODULE_0__lists__","numBoundArgs","f1","f2","fns","fnsList","curFn","startParams","maybeValue","numberOfFixedArguments","argsHolder","cons","arrayAsList","listAsArray","foldR","applyEach","reverseList","__WEBPACK_IMPORTED_MODULE_0__functional__","inputArray","arraySoFar","listItem","startValue","removedFn","withoutInner","subList","fnList","reverseInner","reversedAlready","isOfType","defined","hasAllProperties","__WEBPACK_IMPORTED_MODULE_1__functional__","maybeSomething","fieldList","field","NODE_OPENED","NODE_CLOSED","NODE_SWAP","NODE_DROP","FAIL_EVENT","ROOT_NODE_FOUND","ROOT_PATH_FOUND","HTTP_START","STREAM_DATA","STREAM_END","ABORTING","SAX_KEY","SAX_VALUE_OPEN","SAX_VALUE_CLOSE","errorReport","_S","jsonBody","thrown","namedNode","keyOf","nodeOf","__WEBPACK_IMPORTED_MODULE_2__util__","__WEBPACK_IMPORTED_MODULE_3__defaults__","__WEBPACK_IMPORTED_MODULE_4__wire__","nodeStreamMethodNames","isStream","cached","incrementalContentBuilder","ROOT_PATH","__WEBPACK_IMPORTED_MODULE_0__events__","__WEBPACK_IMPORTED_MODULE_1__ascent__","__WEBPACK_IMPORTED_MODULE_3__lists__","oboeBus","emitNodeOpened","emitNodeClosed","emitRootOpened","emitRootClosed","appendBuiltContent","ancestorBranches","keyFound","ascent","newDeepestName","maybeNewDeepestNode","ascentWithNewPath","contentBuilderHandlers","newDeepestNode","arrayConsistentAscent","possiblyInconsistentAscent","parentNode","arrayIndicesAreKeys","previouslyUnmappedName","__WEBPACK_IMPORTED_MODULE_0__publicApi__","applyDefaults","__WEBPACK_IMPORTED_MODULE_0__util__","passthrough","httpMethodName","modifiedUrl","wire","__WEBPACK_IMPORTED_MODULE_0__pubSub__","__WEBPACK_IMPORTED_MODULE_1__ascentManager__","__WEBPACK_IMPORTED_MODULE_2__incrementalContentBuilder__","__WEBPACK_IMPORTED_MODULE_3__patternAdapter__","__WEBPACK_IMPORTED_MODULE_4__jsonPath__","__WEBPACK_IMPORTED_MODULE_5__instanceApi__","__WEBPACK_IMPORTED_MODULE_6__libs_clarinet__","__WEBPACK_IMPORTED_MODULE_7__streamingHttp_node__","contentSource","pubSub","__WEBPACK_IMPORTED_MODULE_0__singleEventPubSub__","singles","newSingle","pubSubInstance","singleEventPubSub","__WEBPACK_IMPORTED_MODULE_1__util__","__WEBPACK_IMPORTED_MODULE_2__functional__","eventType","listenerTupleList","listenerList","hasId","tuple","listenerId","un","hasListener","ascentManager","__WEBPACK_IMPORTED_MODULE_0__ascent__","__WEBPACK_IMPORTED_MODULE_1__events__","__WEBPACK_IMPORTED_MODULE_2__lists__","stateAfter","newNode","oldHead","ancestors","patternAdapter","__WEBPACK_IMPORTED_MODULE_1__lists__","__WEBPACK_IMPORTED_MODULE_2__ascent__","jsonPathCompiler","predicateEventMap","addUnderlyingListener","fullEventName","predicateEvent","compiledJsonPath","emitMatch","maybeMatchingMapping","descent","emitMatchingNode","removedEventName","__WEBPACK_IMPORTED_MODULE_3__util__","__WEBPACK_IMPORTED_MODULE_4__incrementalContentBuilder__","__WEBPACK_IMPORTED_MODULE_5__jsonPathSyntax__","pathNodeSyntax","doubleDotSyntax","dotSyntax","bangSyntax","emptySyntax","headKey","headNode","capture","previousExpr","detection","skip1","rootExpr","generateClauseReaderIfTokenFound","tokenDetector","clauseEvaluatorGenerators","jsonPath","parserGeneratedSoFar","onSuccess","detected","compiledParser","exprs","expr","expressionsReader","clauseMatcher","clauseForJsonPath","fieldListStr","hasAllrequiredFields","matchesName","terminalCaseWhenArrivingAtRoot","terminalCaseWhenPreviousExpressionIsSatisfied","recursiveCase","cases","lastClause","exprMatch","returnFoundParser","_remainingJsonPath","compileJsonPathToFunction","uncompiledJsonPath","jsonPathSyntax","jsonPathClause","possiblyCapturing","optionalFieldList","jsonPathNamedNodeInObjectNotation","jsonPathNamedNodeInArrayNotation","jsonPathNumberedNodeInArrayNotation","jsonPathPureDuckTyping","jsonPathDoubleDot","jsonPathDot","jsonPathBang","emptyString","componentRegexes","instanceApi","__WEBPACK_IMPORTED_MODULE_3__publicApi__","oboeApi","fullyQualifiedNamePattern","rootNodeFinishedEvent","emitNodeDrop","emitNodeSwap","eventId","addForgettableCallback","wrapCallbackToSwapNodeIfSomethingReturned","safeCallback","protectedCallback","discard","forget","returnValueFromCallback","addSingleNodeOrPathListener","pattern","effectiveCallback","fullyQualifiedPatternMatchEvent","addNodeOrPathListenerApi","jsonPathOrListenerMap","listenerMap","addMultipleNodeOrPathListeners","rootNode","_statusCode","p2","p3","clarinet","eventBus","latestError","textNode","emitSaxKey","emitValueOpen","emitValueClose","emitFail","stringTokenPattern","_n","BEGIN","VALUE","OPEN_OBJECT","CLOSE_OBJECT","OPEN_ARRAY","CLOSE_ARRAY","STRING","OPEN_KEY","CLOSE_KEY","TRUE","TRUE2","TRUE3","FALSE","FALSE2","FALSE3","FALSE4","NULL","NULL2","NULL3","NUMBER_DECIMAL_POINT","bufferCheckPosition","numberNode","slashed","closed","unicodeS","unicodeI","column","emitError","errorString","whitespace","maxActual","starti","STRING_BIGLOOP","reResult","httpTransport","streamingHttp","__WEBPACK_IMPORTED_MODULE_0__detectCrossOrigin_browser__","__WEBPACK_IMPORTED_MODULE_3__parseResponseHeaders_browser__","__WEBPACK_IMPORTED_MODULE_4__functional__","emitStreamData","numberOfCharsAlreadyGivenToCallback","stillToSendStartEvent","handleProgress","textSoFar","newText","sendStartIfNotAlready","headerName","isCrossOrigin","pageLocation","ajaxHost","portOf","parseUrlOrigin","urlHostMatch","parseResponseHeaders","headerStr","headerPair","pckg","ex","extension","extendedObject","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","mark","awrap","async","iter","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","delegateYield","regeneratorRuntime","accidentalStrictMode","_extractCallback","_validateArgs","_formatInput","_formatOutput","_toPayload","subscriptionMethod","err1","blockParams","resultItem","_getRequireWildcardCache","newObj","hasPropertyDescriptor","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","p1","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","zinv","zinv2","ay","pz2","z2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","yyu4","kbase","z3","pz3","eqXToP","zs","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","sha1_K","SHA1","SHA224","SHA384","Kh","E","Ah","Bh","Dh","Eh","rh","sh","inner","outer","KeyPair","Signature","EC","nh","keyPair","keyFromPrivate","fromPrivate","keyFromPublic","pub","fromPublic","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","recoveryParam","canonical","verify","sinv","getPublic","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","_importPrivate","privEnc","_importPublic","pubEnc","derive","_importDER","Position","place","octetLen","rmPadding","constructLength","octets","slen","toDER","backHalf","EDDSA","pointClass","secret","keyFromSecret","hashInt","Rencoded","encodePoint","s_","pubBytes","makeSignature","sig","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pub","_pubBytes","privBytes","getSecret","_R","_Rencoded","_Sencoded","Sencoded","toBytes","ENS","BaseContract","Accounts","getNetworkType","blockCall","transactionFromBlockCall","uncleCall","getBlockTransactionCountCall","uncleCountCall","personal","ens","_detectedAddress","_lastSyncCheck","maxListenersWarningThreshold","_isSyncing","_isSyncingTimeout","Registry","ResolverMethodHandler","registryAddress","registry","supportsInterface","interfaceId","getResolver","resolver","setResolver","txConfig","setRecord","owner","setSubnodeRecord","label","setApprovalForAll","approved","isApprovedForAll","recordExists","setSubnodeOwner","getTTL","setTTL","getOwner","setOwner","getAddress","resolverMethodHandler","setAddress","getPubkey","getContent","getContenthash","getMultihash","setMultihash","checkNetwork","headAge","networkType","namehash","REGISTRY_ABI","RESOLVER_ABI","contract","decimals","defineReadOnly","idna_map","mapLabel","mapped","ucs2","cp","composite","mapChar","flags","kind","mapStr","validateLabel","endsWith","codePointAt","verifyDnsLength","asciiLabels","asciiString","blockIdxes","ensName","methodArguments","preparedArguments","prepareArguments","checkInterfaceSupport","handleCall","sendOptions","handleSend","confirmationNumber","supported","contentHash","decoded","protocolType","contentType","matched","fromIpfs","fromSwarm","multiC","hexStringToBuffer","profiles","cidV0ToV1Base32","profile","ipfsHash","swarmHash","encodedValue","addPrefix","intTable","codecNameToCodeVarint","multicodecStrOrCode","prefixedData","codecName","getNumber","getVarint","print","oldOffset","INT","N1","N2","N3","N4","N5","N6","N7","N8","N9","baseTable","nameTable","encodingName","varintTable","table","_s","_i","tableByCode","multiH","encodes","swarm","ipfs","decodes","hexMultiHash","b58MultiHash","nameOrCode","getBase","codeBuf","validEncode","isImplemented","bufOrString","baseX","base16","base32","tupple","alphabet","engine","stringOrBuffer","char","view","0","errNotSupported","Class","ClassIsWrapper","withoutNew","isNativeReflectConstruct","_construct","Parent","construct","sham","toV1","Account","RLP","Bytes","cryp","scrypt","uuid","Common","default","isNot","Wallet","_accounts","defaultKeyName","_addAccountFunctions","account","privateKeyToAccount","ignoreLength","transactionOptions","hasTxSigningOptions","signed","chainId","_validateTransactionForSigning","transaction","forCustomChain","baseChain","customChain","networkId","ethTx","validationResult","serialize","messageHash","getChainId","getTransactionCount","getNetworkId","recoverTransaction","rawTx","encodeSignature","recovery","extraData","signingData","signingDataHex","recover","hashMessage","messageHex","messageBytes","messageBuffer","preamble","preambleBuffer","ethMessage","vrs","decodeSignature","preFixed","v3Keystore","nonStrict","derivedKey","kdfparams","kdf","syncScrypt","dklen","prf","ciphertext","mac","decipher","cipherparams","v4","_findSafeIndex","pointer","_currentIndexes","numberOfAccounts","addressOrIndex","encryptedWallet","keystore","setItem","getItem","storage","removeItem","storageAvailable","arrayWithoutHoles","iterableToArray","nonIterableSpread","Nat","secp256k1","toChecksum","publicKey","publicHash","makeSigner","addToV","innerHex","middleHex","outerHex","vals","replicate","J","chunksOf","Sha","rotl30","ft","Sha1","rotl5","Sha224","Sha384","ZERO_BUF","subtle","toBrowser","checks","browserPbkdf2","importKey","deriveBits","resolvePromise","prom","checkNative","resp","aesModes","desModes","ebtk","suite","des","instantiate","modeName","_des","des3","ip","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","expand","sTable","substitute","permuteTable","padSplit","bufferOff","_updateDecrypt","_updateEncrypt","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_unpad","DESState","_desState","deriveKeys","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","lStart","rStart","keyL","keyR","CBCState","_cbcInit","_cbcState","superProto","EDEState","k3","_edeState","MODES","AuthCipher","Splitter","_autopadding","thing","PADDING","setTo","padBuff","encryptStart","encryptByte","byteParam","shiftIn","ZEROES","_multiply","lsbVi","Vi","Zi","abl","_last","unpad","autoPadding","generatePrime","DH","ENCODINGS","genc","SEVEN","setPublicKey","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","getPrime","front","getPrivateKey","getGenerator","_hashType","_tag","_signType","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curveId","ecSign","dsaSign","seq","int","use","AlgorithmIdentifier","bitstr","null_","optional","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","explicit","ECParameters","choice","namedCurve","Entity","_createNamed","named","runInThisContext","_initNamed","Object_keys","defineProp","globals","Script","runInContext","iframe","display","win","contentWindow","wEval","wExecScript","execScript","winKeys","runInNewContext","createContext","isContext","createScript","ReporterError","rethrow","pathLen","enterKey","exitKey","leaveKey","enterObject","leaveObject","inherited","elem","wrapResult","tags","reverseArgs","useDecoder","implicit","_wrap","stateProps","cstate","child","_useArgs","def","newKey","prevObj","present","prevKey","_decodeGeneric","_decodeChoice","track","_getUse","_encodeChoice","_encodePrimitive","1","2","3","pem","PEMDecoder","lines","PEMEncoder","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","checkValue","ecVerify","unpacked","montp","dsaVerify","padNum","ECDH","aliases","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","mgf","withPublic","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","nonZero","pkcs1","zBuffer","db","dif","oldBrowser","safeBuffer","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","bin","toEther","fromEther","toUint256","h0","h1","h4","h5","h6","h7","bytesLeft","bitLenHi","bitLenLo","numZeros","PBKDF2_HMAC_SHA256_OneIter","dkLen","innerLen","outerKey","dk","incrementCounter","blockmix_salsa8","BY","Yi","_X","arraycopy","blockxor","salsa20_8","Si","srcPos","checkBufferish","ensureInteger","_scrypt","i1","Bi","XY","totalOps","currentOp","lastPercent10","i0","incrementalSMix","steps","percent10","lib","progressCallback","lastProgress","progress","_nodeId","_clockseq","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","nsecs","dt","tmh","ii","initCompressedValue","defaultValue","COMPRESSED_TYPE_INVALID","privateKeyVerify","EC_PRIVATE_KEY_TYPE_INVALID","privateKeyExport","compressed","isBufferLength","EC_PRIVATE_KEY_LENGTH_INVALID","privateKeyImport","EC_PRIVATE_KEY_IMPORT_DER_FAIL","privateKeyNegate","privateKeyModInverse","privateKeyTweakAdd","tweak","TWEAK_TYPE_INVALID","TWEAK_LENGTH_INVALID","privateKeyTweakMul","publicKeyCreate","publicKeyConvert","EC_PUBLIC_KEY_TYPE_INVALID","isBufferLength2","EC_PUBLIC_KEY_LENGTH_INVALID","publicKeyVerify","publicKeyTweakAdd","publicKeyTweakMul","publicKeyCombine","publicKeys","EC_PUBLIC_KEYS_TYPE_INVALID","isLengthGTZero","EC_PUBLIC_KEYS_LENGTH_INVALID","signatureNormalize","ECDSA_SIGNATURE_TYPE_INVALID","ECDSA_SIGNATURE_LENGTH_INVALID","signatureExport","sigObj","signatureImport","ECDSA_SIGNATURE_PARSE_DER_FAIL","signatureImportLax","MSG32_TYPE_INVALID","MSG32_LENGTH_INVALID","noncefn","OPTIONS_TYPE_INVALID","OPTIONS_DATA_TYPE_INVALID","OPTIONS_DATA_LENGTH_INVALID","OPTIONS_NONCEFN_TYPE_INVALID","RECOVERY_ID_TYPE_INVALID","isNumberInInterval","RECOVERY_ID_VALUE_INVALID","ecdh","ecdhUnsafe","length1","length2","bip66","EC_PRIVKEY_EXPORT_DER_COMPRESSED","EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED","lenb","lenR","posR","lenS","posS","lenbyte","rindex","sindex","rvalue","svalue","check","ecparams","loadPublicKey","xBuffer","loadCompressedPublicKey","yBuffer","x3","loadUncompressedPublicKey","EC_PRIVATE_KEY_EXPORT_DER_FAIL","EC_PRIVATE_KEY_RANGE_INVALID","EC_PRIVATE_KEY_TWEAK_ADD_FAIL","EC_PRIVATE_KEY_TWEAK_MUL_FAIL","EC_PUBLIC_KEY_CREATE_FAIL","EC_PUBLIC_KEY_PARSE_FAIL","EC_PUBLIC_KEY_TWEAK_ADD_FAIL","EC_PUBLIC_KEY_TWEAK_MUL_FAIL","EC_PUBLIC_KEY_COMBINE_FAIL","ECDSA_SIGNATURE_PARSE_FAIL","getNonce","ECDSA_SIGN_FAIL","sigr","sigs","ECDSA_RECOVER_FAIL","shared","scalar","ECDH_FAIL","createKeccak","createShake","KeccakState","Shake","rate","capacity","delimitedSuffix","hashBitLength","_rate","_capacity","_delimitedSuffix","_hashBitLength","_options","_state","initialize","absorb","absorbLastFewBits","squeeze","_resetState","_clone","dataByteLength","keccakState","squeezing","p1600","P1600_ROUND_CONSTANTS","lo0","hi0","lo1","hi1","lo2","hi2","lo3","hi3","lo4","hi4","t1slo0","t1shi0","t1slo5","t1shi5","t1slo10","t1shi10","t1slo15","t1shi15","t1slo20","t1shi20","t1slo1","t1shi1","t1slo6","t1shi6","t1slo11","t1shi11","t1slo16","t1shi16","t1slo21","t1shi21","t1slo2","t1shi2","t1slo7","t1shi7","t1slo12","t1shi12","t1slo17","t1shi17","t1slo22","t1shi22","t1slo3","t1shi3","t1slo8","t1shi8","t1slo13","t1shi13","t1slo18","t1shi18","t1slo23","t1shi23","t1slo4","t1shi4","t1slo9","t1shi9","t1slo14","t1shi14","t1slo19","t1shi19","t1slo24","t1shi24","t2slo0","t2shi0","t2slo16","t2shi16","t2slo7","t2shi7","t2slo23","t2shi23","t2slo14","t2shi14","t2slo10","t2shi10","t2slo1","t2shi1","t2slo17","t2shi17","t2slo8","t2shi8","t2slo24","t2shi24","t2slo20","t2shi20","t2slo11","t2shi11","t2slo2","t2shi2","t2slo18","t2shi18","t2slo9","t2shi9","t2slo5","t2shi5","t2slo21","t2shi21","t2slo12","t2shi12","t2slo3","t2shi3","t2slo19","t2shi19","t2slo15","t2shi15","t2slo6","t2shi6","t2slo22","t2shi22","t2slo13","t2shi13","t2slo4","t2shi4","obj_1","mainnet","kovan","getId","givenId","genesis","noProviderError","download","upload","isAvailable","unavailable","fs","readFile","files","safeDownloadArchived","directoryTree","os","child_process","spawn","mimetype","defaultArchives","downloadUrl","queryString","setQuery","ensureHeader","opt","defaultResponse","strictUriEncode","decodeComponent","extract","queryStart","arrayFormat","parserForArrayFormat","keysSorter","encoderForArrayFormat","val2","parseUrl","singleMatcher","multiMatcher","decodeComponents","tokens","encodedURI","replaceMap","customDecodeURIComponent","lower","useJson","rawRequest","onabort","parseHeaders","xtend","initParams","createXHR","_createXHR","called","getBody","responseXML","firefoxBugTakenEffect","nodeName","getXml","isJson","errorFunc","timeoutTimer","failureResponse","loadFunc","aborted","useXDR","cors","beforeSend","forEachArray","alert","confirm","prompt","row","getPolyfill","shim","boundTrim","ERROR_MESSAGE","binder","boundLength","Empty","origKeys","keysShim","originalKeys","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","GetIntrinsic","$Object","$TypeError","$String","assertRecord","$isNaN","$isFinite","IsCallable","toPrimitive","ES5","ToPrimitive","ToBoolean","ToNumber","ToInteger","ToInt32","ToUint32","ToUint16","posInt","ToObject","optMessage","SameValue","Type","IsPropertyDescriptor","Desc","allowed","isData","IsAccessor","IsAccessorDescriptor","IsDataDescriptor","IsGenericDescriptor","FromPropertyDescriptor","ToPropertyDescriptor","Obj","setter","$SyntaxError","recordType","argumentName","modulo","remain","isCallable","ES5internalSlots","O","actualHint","polyfill","forEachString","forEachObject","thisArg","swarmHashBlock","lengthEncoded","innerNodes","picker","fileInput","fileLoader","directory","totalFiles","loadedFiles","file","FileReader","webkitRelativePath","_path","webkitdirectory","mozdirectory","msdirectory","odirectory","mouseEvent","createEvent","initEvent","dispatchEvent","_ref","toMap","rawUrl","swarmUrl","downloadData","downloadEntries","routes","downloadEntry","impureInsert","downloadRoutes","route","downloadDirectory","hashs","datas","downloadDataToDisk","filePath","downloadDirectoryToDisk","dirPath","routingTable","downloads","uploadData","uploadToManifest","attempt","slashRoute","uploadFile","uploadDirectory","uploadFileFromDisk","uploadRoute","uploadDataFromDisk","uploadDirectoryFromDisk","defaultPath","fullPaths","_upload","defaultFile","_download","isDirectory","isDir","downloadBinary","archives","system","archive","archiveUrl","archiveMD5","binaryMD5","startProcess","swarmSetup","hasString","dataDir","ensApi","swarmProcess","binPath","handleProcessOutput","stdin","stopProcess","kill","killTimeout","_isAvailable","uncurry","uint8Array","local","useAPI","onData","onProgress"],"mappings":"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mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINnd,IAAK,CACHha,IAAK,EACLm3B,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,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AAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,I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MAAQ/1B,OAAOmqG,OAAO,CAC5B,SAAc,EACd,KAAc,GACd,WAAc,GACd,WAAc,GACd,eAAgB,GAChB,WAAc,GACd,WAAc,GACd,WAAc,GACd,WAAc,GACd,YAAc,GACd,YAAc,GACd,aAAc,GACd,aAAc,GACd,aAAc,GACd,aAAc,GACd,cAAe,GACf,aAAe,GACf,IAAe,IACf,IAAe,IACf,YAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,YAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,aAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,aAAc,MACd,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,KACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,QAGpBrrG,EAAQq3D,MAAQn2D,OAAOmqG,OAAO,CAC5BsvB,EAAK,WAGL,GAAM,OACN,GAAM,WACN,GAAM,WACN,GAAM,eACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,WACN,GAAM,YACN,GAAM,YACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,aAEN,GAAM,cACN,GAAM,aAEN,IAAM,MACN,IAAM,MAGN,MAAQ,YACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,YACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,aACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cAGR,MAAQ,aACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,aACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,cACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,cACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,eACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,KAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,gBACR,MAAQ,iBACR,MAAQ,iBACR,MAAQ,iBACR,MAAQ,mBAGV36H,EAAQs3D,eAAiBp2D,OAAOmqG,OAAO,CACrC,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,GAEN,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,KAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,GACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,M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EACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINnd,IAAK,CACHha,IAAK,EACLm3B,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,m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AEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINnd,IAAK,CACHha,IAAK,EACLm3B,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oE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","file":"web3.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Web3\"] = factory();\n\telse\n\t\troot[\"Web3\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 213);\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar errors = require('./errors');\nvar formatters = require('./formatters');\nmodule.exports = {\n errors: errors,\n formatters: formatters\n};\n","// Underscore.js 1.9.1\n// http://underscorejs.org\n// (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` (`self`) in the browser, `global`\n // on the server, or `this` in some virtual machines. We use `self`\n // instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n this ||\n {};\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype;\n var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n // Create quick reference variables for speed access to core prototypes.\n var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for their old module API. If we're in\n // the browser, add `_` as a global object.\n // (`nodeType` is checked to ensure that `module`\n // and `exports` are not HTML elements.)\n if (typeof exports != 'undefined' && !exports.nodeType) {\n if (typeof module != 'undefined' && !module.nodeType && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.9.1';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n var builtinIteratee;\n\n // An internal function to generate callbacks that can be applied to each\n // element in a collection, returning the desired result — either `identity`,\n // an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (_.iteratee !== builtinIteratee) return _.iteratee(value, context);\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value) && !_.isArray(value)) return _.matcher(value);\n return _.property(value);\n };\n\n // External wrapper for our callback generator. Users may customize\n // `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n // This abstraction hides the internal-only argCount argument.\n _.iteratee = builtinIteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // Some functions take a variable number of arguments, or a few expected\n // arguments at the beginning and then a variable number of values to operate\n // on. This helper accumulates all remaining arguments past the function’s\n // argument length (or an explicit `startIndex`), into an array that becomes\n // the last argument. Similar to ES6’s \"rest parameter\".\n var restArguments = function(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var shallowProperty = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n var has = function(obj, path) {\n return obj != null && hasOwnProperty.call(obj, path);\n }\n\n var deepGet = function(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object.\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = shallowProperty('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n var createReduce = function(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n };\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? _.findIndex : _.findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (_.isFunction(path)) {\n func = path;\n } else if (_.isArray(path)) {\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return _.map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n });\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection.\n _.shuffle = function(obj) {\n return _.sample(obj, Infinity);\n };\n\n // Sample **n** random values from a collection using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? _.clone(obj) : _.values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = _.random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n });\n\n var reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (_.isString(obj)) {\n // Keep surrogate pair characters together\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n }, true);\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, Boolean);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, output) {\n output = output || [];\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (shallow) {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n } else {\n flatten(value, shallow, strict, output);\n idx = output.length;\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = restArguments(function(array, otherArrays) {\n return _.difference(array, otherArrays);\n });\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // The faster algorithm will not work with an iteratee if the iteratee\n // is not a one-to-one function, so providing an iteratee will disable\n // the faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = restArguments(function(arrays) {\n return _.uniq(flatten(arrays, true, true));\n });\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n });\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices.\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = restArguments(_.unzip);\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values. Passing by pairs is the reverse of _.pairs.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions.\n var createPredicateIndexFinder = function(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n };\n\n // Returns the first index on an array-like that passes a predicate test.\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions.\n var createIndexFinder = function(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n };\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Chunk a single array into multiple arrays, each containing `count` or fewer\n // items.\n _.chunk = function(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments.\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = restArguments(function(func, context, args) {\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n });\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder by default, allowing any combination of arguments to be\n // pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\n _.partial = restArguments(function(func, boundArgs) {\n var placeholder = _.partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n });\n\n _.partial.placeholder = _;\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = _.bind(obj[key], obj);\n }\n });\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n });\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, result;\n\n var later = function(context, args) {\n timeout = null;\n if (args) result = func.apply(context, args);\n };\n\n var debounced = restArguments(function(args) {\n if (timeout) clearTimeout(timeout);\n if (immediate) {\n var callNow = !timeout;\n timeout = setTimeout(later, wait);\n if (callNow) result = func.apply(this, args);\n } else {\n timeout = _.delay(later, wait, this, args);\n }\n\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return debounced;\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n _.restArguments = restArguments;\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n var collectNonEnumProps = function(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = _.isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n };\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`.\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object.\n // In contrast to _.map it returns an object.\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n // The opposite of _.object.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`.\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s).\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test.\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Internal pick helper function to determine if `obj` has key `key`.\n var keyInObj = function(value, key, obj) {\n return key in obj;\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (_.isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = _.allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n });\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = _.map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n });\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq, deepEq;\n eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n };\n\n // Internal recursive comparison function for `isEqual`.\n deepEq = function(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol', 'Map', 'WeakMap', 'Set', 'WeakSet'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\n var nodelist = root.document && root.document.childNodes;\n if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return !_.isSymbol(obj) && isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`?\n _.isNaN = function(obj) {\n return _.isNumber(obj) && isNaN(obj);\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, path) {\n if (!_.isArray(path)) {\n return has(obj, path);\n }\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (obj == null || !hasOwnProperty.call(obj, key)) {\n return false;\n }\n obj = obj[key];\n }\n return !!length;\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n // Creates a function that, when passed an object, will traverse that object’s\n // properties down the given `path`, specified as an array of keys or indexes.\n _.property = function(path) {\n if (!_.isArray(path)) {\n return shallowProperty(path);\n }\n return function(obj) {\n return deepGet(obj, path);\n };\n };\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n if (obj == null) {\n return function(){};\n }\n return function(path) {\n return !_.isArray(path) ? obj[path] : deepGet(obj, path);\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // Traverses the children of `obj` along `path`. If a child is a function, it\n // is invoked with its parent as context. Returns the value of the final\n // child, or `fallback` if any child is undefined.\n _.result = function(obj, path, fallback) {\n if (!_.isArray(path)) path = [path];\n var length = path.length;\n if (!length) {\n return _.isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = _.isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var chainResult = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return chainResult(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return chainResult(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return String(this._wrapped);\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define == 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}());\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file utils.js\n * @author Marek Kotewicz \n * @author Fabian Vogelsteller \n * @date 2017\n */\nvar _ = require('underscore');\nvar ethjsUnit = require('ethjs-unit');\nvar utils = require('./utils.js');\nvar soliditySha3 = require('./soliditySha3.js');\nvar randombytes = require('randombytes');\nvar BN = require('bn.js');\n/**\n * Fires an error in an event emitter and callback and returns the eventemitter\n *\n * @method _fireError\n * @param {Object} error a string, a error, or an object with {message, data}\n * @param {Object} emitter\n * @param {Function} reject\n * @param {Function} callback\n * @param {any} optionalData\n * @return {Object} the emitter\n */\nvar _fireError = function (error, emitter, reject, callback, optionalData) {\n /*jshint maxcomplexity: 10 */\n // add data if given\n if (_.isObject(error) && !(error instanceof Error) && error.data) {\n if (_.isObject(error.data) || _.isArray(error.data)) {\n error.data = JSON.stringify(error.data, null, 2);\n }\n error = error.message + \"\\n\" + error.data;\n }\n if (_.isString(error)) {\n error = new Error(error);\n }\n if (_.isFunction(callback)) {\n callback(error, optionalData);\n }\n if (_.isFunction(reject)) {\n // suppress uncatched error if an error listener is present\n // OR suppress uncatched error if an callback listener is present\n if (emitter &&\n (_.isFunction(emitter.listeners) &&\n emitter.listeners('error').length) || _.isFunction(callback)) {\n emitter.catch(function () { });\n }\n // reject later, to be able to return emitter\n setTimeout(function () {\n reject(error);\n }, 1);\n }\n if (emitter && _.isFunction(emitter.emit)) {\n // emit later, to be able to return emitter\n setTimeout(function () {\n emitter.emit('error', error, optionalData);\n emitter.removeAllListeners();\n }, 1);\n }\n return emitter;\n};\n/**\n * Should be used to create full function/event name from json abi\n *\n * @method _jsonInterfaceMethodToString\n * @param {Object} json\n * @return {String} full function/event name\n */\nvar _jsonInterfaceMethodToString = function (json) {\n if (_.isObject(json) && json.name && json.name.indexOf('(') !== -1) {\n return json.name;\n }\n return json.name + '(' + _flattenTypes(false, json.inputs).join(',') + ')';\n};\n/**\n * Should be used to flatten json abi inputs/outputs into an array of type-representing-strings\n *\n * @method _flattenTypes\n * @param {bool} includeTuple\n * @param {Object} puts\n * @return {Array} parameters as strings\n */\nvar _flattenTypes = function (includeTuple, puts) {\n // console.log(\"entered _flattenTypes. inputs/outputs: \" + puts)\n var types = [];\n puts.forEach(function (param) {\n if (typeof param.components === 'object') {\n if (param.type.substring(0, 5) !== 'tuple') {\n throw new Error('components found but type is not tuple; report on GitHub');\n }\n var suffix = '';\n var arrayBracket = param.type.indexOf('[');\n if (arrayBracket >= 0) {\n suffix = param.type.substring(arrayBracket);\n }\n var result = _flattenTypes(includeTuple, param.components);\n // console.log(\"result should have things: \" + result)\n if (_.isArray(result) && includeTuple) {\n // console.log(\"include tuple word, and its an array. joining...: \" + result.types)\n types.push('tuple(' + result.join(',') + ')' + suffix);\n }\n else if (!includeTuple) {\n // console.log(\"don't include tuple, but its an array. joining...: \" + result)\n types.push('(' + result.join(',') + ')' + suffix);\n }\n else {\n // console.log(\"its a single type within a tuple: \" + result.types)\n types.push('(' + result + ')');\n }\n }\n else {\n // console.log(\"its a type and not directly in a tuple: \" + param.type)\n types.push(param.type);\n }\n });\n return types;\n};\n/**\n * Returns a random hex string by the given bytes size\n *\n * @param {Number} size\n * @returns {string}\n */\nvar randomHex = function (size) {\n return '0x' + randombytes(size).toString('hex');\n};\n/**\n * Should be called to get ascii from it's hex representation\n *\n * @method hexToAscii\n * @param {String} hex\n * @returns {String} ascii string representation of hex value\n */\nvar hexToAscii = function (hex) {\n if (!utils.isHexStrict(hex))\n throw new Error('The parameter must be a valid HEX string.');\n var str = \"\";\n var i = 0, l = hex.length;\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n for (; i < l; i += 2) {\n var code = parseInt(hex.substr(i, 2), 16);\n str += String.fromCharCode(code);\n }\n return str;\n};\n/**\n * Should be called to get hex representation (prefixed by 0x) of ascii string\n *\n * @method asciiToHex\n * @param {String} str\n * @returns {String} hex representation of input string\n */\nvar asciiToHex = function (str) {\n if (!str)\n return \"0x00\";\n var hex = \"\";\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n var n = code.toString(16);\n hex += n.length < 2 ? '0' + n : n;\n }\n return \"0x\" + hex;\n};\n/**\n * Returns value of unit in Wei\n *\n * @method getUnitValue\n * @param {String} unit the unit to convert to, default ether\n * @returns {BN} value of the unit (in Wei)\n * @throws error if the unit is not correct:w\n */\nvar getUnitValue = function (unit) {\n unit = unit ? unit.toLowerCase() : 'ether';\n if (!ethjsUnit.unitMap[unit]) {\n throw new Error('This unit \"' + unit + '\" doesn\\'t exist, please use the one of the following units' + JSON.stringify(ethjsUnit.unitMap, null, 2));\n }\n return unit;\n};\n/**\n * Takes a number of wei and converts it to any other ether unit.\n *\n * Possible units are:\n * SI Short SI Full Effigy Other\n * - kwei femtoether babbage\n * - mwei picoether lovelace\n * - gwei nanoether shannon nano\n * - -- microether szabo micro\n * - -- milliether finney milli\n * - ether -- --\n * - kether -- grand\n * - mether\n * - gether\n * - tether\n *\n * @method fromWei\n * @param {Number|String} number can be a number, number string or a HEX of a decimal\n * @param {String} unit the unit to convert to, default ether\n * @return {String|Object} When given a BN object it returns one as well, otherwise a number\n */\nvar fromWei = function (number, unit) {\n unit = getUnitValue(unit);\n if (!utils.isBN(number) && !_.isString(number)) {\n throw new Error('Please pass numbers as strings or BN objects to avoid precision errors.');\n }\n return utils.isBN(number) ? ethjsUnit.fromWei(number, unit) : ethjsUnit.fromWei(number, unit).toString(10);\n};\n/**\n * Takes a number of a unit and converts it to wei.\n *\n * Possible units are:\n * SI Short SI Full Effigy Other\n * - kwei femtoether babbage\n * - mwei picoether lovelace\n * - gwei nanoether shannon nano\n * - -- microether szabo micro\n * - -- microether szabo micro\n * - -- milliether finney milli\n * - ether -- --\n * - kether -- grand\n * - mether\n * - gether\n * - tether\n *\n * @method toWei\n * @param {Number|String|BN} number can be a number, number string or a HEX of a decimal\n * @param {String} unit the unit to convert from, default ether\n * @return {String|Object} When given a BN object it returns one as well, otherwise a number\n */\nvar toWei = function (number, unit) {\n unit = getUnitValue(unit);\n if (!utils.isBN(number) && !_.isString(number)) {\n throw new Error('Please pass numbers as strings or BN objects to avoid precision errors.');\n }\n return utils.isBN(number) ? ethjsUnit.toWei(number, unit) : ethjsUnit.toWei(number, unit).toString(10);\n};\n/**\n * Converts to a checksum address\n *\n * @method toChecksumAddress\n * @param {String} address the given HEX address\n * @return {String}\n */\nvar toChecksumAddress = function (address) {\n if (typeof address === 'undefined')\n return '';\n if (!/^(0x)?[0-9a-f]{40}$/i.test(address))\n throw new Error('Given address \"' + address + '\" is not a valid Ethereum address.');\n address = address.toLowerCase().replace(/^0x/i, '');\n var addressHash = utils.sha3(address).replace(/^0x/i, '');\n var checksumAddress = '0x';\n for (var i = 0; i < address.length; i++) {\n // If ith character is 8 to f then make it uppercase\n if (parseInt(addressHash[i], 16) > 7) {\n checksumAddress += address[i].toUpperCase();\n }\n else {\n checksumAddress += address[i];\n }\n }\n return checksumAddress;\n};\n/**\n * Returns -1 if ab; 0 if a == b.\n * For more details on this type of function, see\n * developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort\n *\n * @method compareBlockNumbers\n *\n * @param {String|Number|BN} a\n *\n * @param {String|Number|BN} b\n *\n * @returns {Number} -1, 0, or 1\n */\nvar compareBlockNumbers = function (a, b) {\n if (a == b) {\n return 0;\n }\n else if ((\"genesis\" == a || \"earliest\" == a || 0 == a) && (\"genesis\" == b || \"earliest\" == b || 0 == b)) {\n return 0;\n }\n else if (\"genesis\" == a || \"earliest\" == a) {\n // b !== a, thus a < b\n return -1;\n }\n else if (\"genesis\" == b || \"earliest\" == b) {\n // b !== a, thus a > b\n return 1;\n }\n else if (a == \"latest\") {\n if (b == \"pending\") {\n return -1;\n }\n else {\n // b !== (\"pending\" OR \"latest\"), thus a > b\n return 1;\n }\n }\n else if (b === \"latest\") {\n if (a == \"pending\") {\n return 1;\n }\n else {\n // b !== (\"pending\" OR \"latest\"), thus a > b\n return -1;\n }\n }\n else if (a == \"pending\") {\n // b (== OR <) \"latest\", thus a > b\n return 1;\n }\n else if (b == \"pending\") {\n return -1;\n }\n else {\n let bnA = new BN(a);\n let bnB = new BN(b);\n if (bnA.lt(bnB)) {\n return -1;\n }\n else if (bnA.eq(bnB)) {\n return 0;\n }\n else {\n return 1;\n }\n }\n};\nmodule.exports = {\n _fireError: _fireError,\n _jsonInterfaceMethodToString: _jsonInterfaceMethodToString,\n _flattenTypes: _flattenTypes,\n // extractDisplayName: extractDisplayName,\n // extractTypeName: extractTypeName,\n randomHex: randomHex,\n _: _,\n BN: utils.BN,\n isBN: utils.isBN,\n isBigNumber: utils.isBigNumber,\n isHex: utils.isHex,\n isHexStrict: utils.isHexStrict,\n sha3: utils.sha3,\n sha3Raw: utils.sha3Raw,\n keccak256: utils.sha3,\n soliditySha3: soliditySha3.soliditySha3,\n soliditySha3Raw: soliditySha3.soliditySha3Raw,\n encodePacked: soliditySha3.encodePacked,\n isAddress: utils.isAddress,\n checkAddressChecksum: utils.checkAddressChecksum,\n toChecksumAddress: toChecksumAddress,\n toHex: utils.toHex,\n toBN: utils.toBN,\n bytesToHex: utils.bytesToHex,\n hexToBytes: utils.hexToBytes,\n hexToNumberString: utils.hexToNumberString,\n hexToNumber: utils.hexToNumber,\n toDecimal: utils.hexToNumber,\n numberToHex: utils.numberToHex,\n fromDecimal: utils.numberToHex,\n hexToUtf8: utils.hexToUtf8,\n hexToString: utils.hexToUtf8,\n toUtf8: utils.hexToUtf8,\n utf8ToHex: utils.utf8ToHex,\n stringToHex: utils.utf8ToHex,\n fromUtf8: utils.utf8ToHex,\n hexToAscii: hexToAscii,\n toAscii: hexToAscii,\n asciiToHex: asciiToHex,\n fromAscii: asciiToHex,\n unitMap: ethjsUnit.unitMap,\n toWei: toWei,\n fromWei: fromWei,\n padLeft: utils.leftPad,\n leftPad: utils.leftPad,\n padRight: utils.rightPad,\n rightPad: utils.rightPad,\n toTwosComplement: utils.toTwosComplement,\n isBloom: utils.isBloom,\n isUserEthereumAddressInBloom: utils.isUserEthereumAddressInBloom,\n isContractAddressInBloom: utils.isContractAddressInBloom,\n isTopic: utils.isTopic,\n isTopicInBloom: utils.isTopicInBloom,\n isInBloom: utils.isInBloom,\n compareBlockNumbers: compareBlockNumbers\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","\"use strict\";\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\nconst requestManager = require(\"web3-core-requestmanager\");\nconst extend = require(\"./extend\");\nconst packageInit = (pkg, args) => {\n args = Array.prototype.slice.call(args);\n if (!pkg) {\n throw new Error('You need to instantiate using the \"new\" keyword.');\n }\n // make property of pkg._provider, which can properly set providers\n Object.defineProperty(pkg, 'currentProvider', {\n get: () => {\n return pkg._provider;\n },\n set: (value) => {\n return pkg.setProvider(value);\n },\n enumerable: true,\n configurable: true\n });\n // inherit from parent package or create a new RequestManager\n if (args[0] && args[0]._requestManager) {\n pkg._requestManager = args[0]._requestManager;\n }\n else {\n pkg._requestManager = new requestManager.Manager(args[0], args[1]);\n }\n // add givenProvider\n pkg.givenProvider = requestManager.Manager.givenProvider;\n pkg.providers = requestManager.Manager.providers;\n pkg._provider = pkg._requestManager.provider;\n // add SETPROVIDER function (don't overwrite if already existing)\n if (!pkg.setProvider) {\n pkg.setProvider = (provider, net) => {\n pkg._requestManager.setProvider(provider, net);\n pkg._provider = pkg._requestManager.provider;\n return true;\n };\n }\n pkg.setRequestManager = (manager) => {\n pkg._requestManager = manager;\n pkg._provider = manager.provider;\n };\n // attach batch request creation\n pkg.BatchRequest = requestManager.BatchManager.bind(null, pkg._requestManager);\n // attach extend function\n pkg.extend = extend(pkg);\n};\nconst addProviders = (pkg) => {\n pkg.givenProvider = requestManager.Manager.givenProvider;\n pkg.providers = requestManager.Manager.providers;\n};\nmodule.exports = {\n packageInit,\n addProviders\n};\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @author Marek Kotewicz \n * @date 2017\n */\n'use strict';\nvar _ = require('underscore');\nvar errors = require('web3-core-helpers').errors;\nvar formatters = require('web3-core-helpers').formatters;\nvar utils = require('web3-utils');\nvar promiEvent = require('web3-core-promievent');\nvar Subscriptions = require('web3-core-subscriptions').subscriptions;\nvar EthersTransactionUtils = require('@ethersproject/transactions');\nvar Method = function Method(options) {\n if (!options.call || !options.name) {\n throw new Error('When creating a method you need to provide at least the \"name\" and \"call\" property.');\n }\n this.name = options.name;\n this.call = options.call;\n this.params = options.params || 0;\n this.inputFormatter = options.inputFormatter;\n this.outputFormatter = options.outputFormatter;\n this.transformPayload = options.transformPayload;\n this.extraFormatters = options.extraFormatters;\n this.abiCoder = options.abiCoder; // Will be used to encode the revert reason string\n this.requestManager = options.requestManager;\n // reference to eth.accounts\n this.accounts = options.accounts;\n this.defaultBlock = options.defaultBlock || 'latest';\n this.defaultAccount = options.defaultAccount || null;\n this.transactionBlockTimeout = options.transactionBlockTimeout || 50;\n this.transactionConfirmationBlocks = options.transactionConfirmationBlocks || 24;\n this.transactionPollingTimeout = options.transactionPollingTimeout || 750;\n this.defaultCommon = options.defaultCommon;\n this.defaultChain = options.defaultChain;\n this.defaultHardfork = options.defaultHardfork;\n this.handleRevert = options.handleRevert;\n};\nMethod.prototype.setRequestManager = function (requestManager, accounts) {\n this.requestManager = requestManager;\n // reference to eth.accounts\n if (accounts) {\n this.accounts = accounts;\n }\n};\nMethod.prototype.createFunction = function (requestManager, accounts) {\n var func = this.buildCall();\n func.call = this.call;\n this.setRequestManager(requestManager || this.requestManager, accounts || this.accounts);\n return func;\n};\nMethod.prototype.attachToObject = function (obj) {\n var func = this.buildCall();\n func.call = this.call;\n var name = this.name.split('.');\n if (name.length > 1) {\n obj[name[0]] = obj[name[0]] || {};\n obj[name[0]][name[1]] = func;\n }\n else {\n obj[name[0]] = func;\n }\n};\n/**\n * Should be used to determine name of the jsonrpc method based on arguments\n *\n * @method getCall\n * @param {Array} arguments\n * @return {String} name of jsonrpc method\n */\nMethod.prototype.getCall = function (args) {\n return _.isFunction(this.call) ? this.call(args) : this.call;\n};\n/**\n * Should be used to extract callback from array of arguments. Modifies input param\n *\n * @method extractCallback\n * @param {Array} arguments\n * @return {Function|Null} callback, if exists\n */\nMethod.prototype.extractCallback = function (args) {\n if (_.isFunction(args[args.length - 1])) {\n return args.pop(); // modify the args array!\n }\n};\n/**\n * Should be called to check if the number of arguments is correct\n *\n * @method validateArgs\n * @param {Array} arguments\n * @throws {Error} if it is not\n */\nMethod.prototype.validateArgs = function (args) {\n if (args.length !== this.params) {\n throw errors.InvalidNumberOfParams(args.length, this.params, this.name);\n }\n};\n/**\n * Should be called to format input args of method\n *\n * @method formatInput\n * @param {Array}\n * @return {Array}\n */\nMethod.prototype.formatInput = function (args) {\n var _this = this;\n if (!this.inputFormatter) {\n return args;\n }\n return this.inputFormatter.map(function (formatter, index) {\n // bind this for defaultBlock, and defaultAccount\n return formatter ? formatter.call(_this, args[index]) : args[index];\n });\n};\n/**\n * Should be called to format output(result) of method\n *\n * @method formatOutput\n * @param {Object}\n * @return {Object}\n */\nMethod.prototype.formatOutput = function (result) {\n var _this = this;\n if (_.isArray(result)) {\n return result.map(function (res) {\n return _this.outputFormatter && res ? _this.outputFormatter(res) : res;\n });\n }\n else {\n return this.outputFormatter && result ? this.outputFormatter(result) : result;\n }\n};\n/**\n * Should create payload from given input args\n *\n * @method toPayload\n * @param {Array} args\n * @return {Object}\n */\nMethod.prototype.toPayload = function (args) {\n var call = this.getCall(args);\n var callback = this.extractCallback(args);\n var params = this.formatInput(args);\n this.validateArgs(params);\n var payload = {\n method: call,\n params: params,\n callback: callback\n };\n if (this.transformPayload) {\n payload = this.transformPayload(payload);\n }\n return payload;\n};\nMethod.prototype._confirmTransaction = function (defer, result, payload) {\n var method = this, promiseResolved = false, canUnsubscribe = true, timeoutCount = 0, confirmationCount = 0, intervalId = null, lastBlock = null, receiptJSON = '', gasProvided = (_.isObject(payload.params[0]) && payload.params[0].gas) ? payload.params[0].gas : null, isContractDeployment = _.isObject(payload.params[0]) &&\n payload.params[0].data &&\n payload.params[0].from &&\n !payload.params[0].to, hasBytecode = isContractDeployment && payload.params[0].data.length > 2;\n // add custom send Methods\n var _ethereumCalls = [\n new Method({\n name: 'getBlockByNumber',\n call: 'eth_getBlockByNumber',\n params: 2,\n inputFormatter: [formatters.inputBlockNumberFormatter, function (val) {\n return !!val;\n }],\n outputFormatter: formatters.outputBlockFormatter\n }),\n new Method({\n name: 'getTransactionReceipt',\n call: 'eth_getTransactionReceipt',\n params: 1,\n inputFormatter: [null],\n outputFormatter: formatters.outputTransactionReceiptFormatter\n }),\n new Method({\n name: 'getCode',\n call: 'eth_getCode',\n params: 2,\n inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter]\n }),\n new Method({\n name: 'getTransactionByHash',\n call: 'eth_getTransactionByHash',\n params: 1,\n inputFormatter: [null],\n outputFormatter: formatters.outputTransactionFormatter\n }),\n new Subscriptions({\n name: 'subscribe',\n type: 'eth',\n subscriptions: {\n 'newBlockHeaders': {\n subscriptionName: 'newHeads',\n params: 0,\n outputFormatter: formatters.outputBlockFormatter\n }\n }\n })\n ];\n // attach methods to this._ethereumCall\n var _ethereumCall = {};\n _.each(_ethereumCalls, function (mthd) {\n mthd.attachToObject(_ethereumCall);\n mthd.requestManager = method.requestManager; // assign rather than call setRequestManager()\n });\n // fire \"receipt\" and confirmation events and resolve after\n var checkConfirmation = function (existingReceipt, isPolling, err, blockHeader, sub) {\n if (!err) {\n // create fake unsubscribe\n if (!sub) {\n sub = {\n unsubscribe: function () {\n clearInterval(intervalId);\n }\n };\n }\n // if we have a valid receipt we don't need to send a request\n return (existingReceipt ? promiEvent.resolve(existingReceipt) : _ethereumCall.getTransactionReceipt(result))\n // catch error from requesting receipt\n .catch(function (err) {\n sub.unsubscribe();\n promiseResolved = true;\n utils._fireError({\n message: 'Failed to check for transaction receipt:',\n data: err\n }, defer.eventEmitter, defer.reject);\n })\n // if CONFIRMATION listener exists check for confirmations, by setting canUnsubscribe = false\n .then(async function (receipt) {\n if (!receipt || !receipt.blockHash) {\n throw new Error('Receipt missing or blockHash null');\n }\n // apply extra formatters\n if (method.extraFormatters && method.extraFormatters.receiptFormatter) {\n receipt = method.extraFormatters.receiptFormatter(receipt);\n }\n // check if confirmation listener exists\n if (defer.eventEmitter.listeners('confirmation').length > 0) {\n var block;\n // If there was an immediately retrieved receipt, it's already\n // been confirmed by the direct call to checkConfirmation needed\n // for parity instant-seal\n if (existingReceipt === undefined || confirmationCount !== 0) {\n // Get latest block to emit with confirmation\n var latestBlock = await _ethereumCall.getBlockByNumber('latest');\n var latestBlockHash = latestBlock ? latestBlock.hash : null;\n if (isPolling) { // Check if actually a new block is existing on polling\n if (lastBlock) {\n block = await _ethereumCall.getBlockByNumber(lastBlock.number + 1);\n if (block) {\n lastBlock = block;\n defer.eventEmitter.emit('confirmation', confirmationCount, receipt, latestBlockHash);\n }\n }\n else {\n block = await _ethereumCall.getBlockByNumber(receipt.blockNumber);\n lastBlock = block;\n defer.eventEmitter.emit('confirmation', confirmationCount, receipt, latestBlockHash);\n }\n }\n else {\n defer.eventEmitter.emit('confirmation', confirmationCount, receipt, latestBlockHash);\n }\n }\n if ((isPolling && block) || !isPolling) {\n confirmationCount++;\n }\n canUnsubscribe = false;\n if (confirmationCount === method.transactionConfirmationBlocks + 1) { // add 1 so we account for conf 0\n sub.unsubscribe();\n defer.eventEmitter.removeAllListeners();\n }\n }\n return receipt;\n })\n // CHECK for CONTRACT DEPLOYMENT\n .then(async function (receipt) {\n if (isContractDeployment && !promiseResolved) {\n if (!receipt.contractAddress) {\n if (canUnsubscribe) {\n sub.unsubscribe();\n promiseResolved = true;\n }\n utils._fireError(errors.NoContractAddressFoundError(receipt), defer.eventEmitter, defer.reject, null, receipt);\n return;\n }\n var code;\n try {\n code = await _ethereumCall.getCode(receipt.contractAddress);\n }\n catch (err) {\n // ignore;\n }\n if (!code) {\n return;\n }\n // If deployment is status.true and there was a real\n // bytecode string, assume it was successful.\n var deploymentSuccess = receipt.status === true && hasBytecode;\n if (deploymentSuccess || code.length > 2) {\n defer.eventEmitter.emit('receipt', receipt);\n // if contract, return instance instead of receipt\n if (method.extraFormatters && method.extraFormatters.contractDeployFormatter) {\n defer.resolve(method.extraFormatters.contractDeployFormatter(receipt));\n }\n else {\n defer.resolve(receipt);\n }\n // need to remove listeners, as they aren't removed automatically when succesfull\n if (canUnsubscribe) {\n defer.eventEmitter.removeAllListeners();\n }\n }\n else {\n utils._fireError(errors.ContractCodeNotStoredError(receipt), defer.eventEmitter, defer.reject, null, receipt);\n }\n if (canUnsubscribe) {\n sub.unsubscribe();\n }\n promiseResolved = true;\n }\n return receipt;\n })\n // CHECK for normal tx check for receipt only\n .then(async function (receipt) {\n if (!isContractDeployment && !promiseResolved) {\n if (!receipt.outOfGas &&\n (!gasProvided || gasProvided !== receipt.gasUsed) &&\n (receipt.status === true || receipt.status === '0x1' || typeof receipt.status === 'undefined')) {\n defer.eventEmitter.emit('receipt', receipt);\n defer.resolve(receipt);\n // need to remove listeners, as they aren't removed automatically when succesfull\n if (canUnsubscribe) {\n defer.eventEmitter.removeAllListeners();\n }\n }\n else {\n receiptJSON = JSON.stringify(receipt, null, 2);\n if (receipt.status === false || receipt.status === '0x0') {\n try {\n var revertMessage = null;\n if (method.handleRevert &&\n (method.call === 'eth_sendTransaction' || method.call === 'eth_sendRawTransaction')) {\n var txReplayOptions = payload.params[0];\n // If send was raw, fetch the transaction and reconstitute the\n // original params so they can be replayed with `eth_call`\n if (method.call === 'eth_sendRawTransaction') {\n var rawTransactionHex = payload.params[0];\n var parsedTx = EthersTransactionUtils.parse(rawTransactionHex);\n txReplayOptions = formatters.inputTransactionFormatter({\n data: parsedTx.data,\n to: parsedTx.to,\n from: parsedTx.from,\n gas: parsedTx.gasLimit.toHexString(),\n gasPrice: parsedTx.gasPrice.toHexString(),\n value: parsedTx.value.toHexString()\n });\n }\n // Get revert reason string with eth_call\n revertMessage = await method.getRevertReason(txReplayOptions, receipt.blockNumber);\n if (revertMessage) { // Only throw a revert error if a revert reason is existing\n utils._fireError(errors.TransactionRevertInstructionError(revertMessage.reason, revertMessage.signature, receipt), defer.eventEmitter, defer.reject, null, receipt);\n }\n else {\n throw false; // Throw false and let the try/catch statement handle the error correctly after\n }\n }\n else {\n throw false; // Throw false and let the try/catch statement handle the error correctly after\n }\n }\n catch (error) {\n // Throw an normal revert error if no revert reason is given or the detection of it is disabled\n utils._fireError(errors.TransactionRevertedWithoutReasonError(receipt), defer.eventEmitter, defer.reject, null, receipt);\n }\n }\n else {\n // Throw OOG if status is not existing and provided gas and used gas are equal\n utils._fireError(errors.TransactionOutOfGasError(receipt), defer.eventEmitter, defer.reject, null, receipt);\n }\n }\n if (canUnsubscribe) {\n sub.unsubscribe();\n }\n promiseResolved = true;\n }\n })\n // time out the transaction if not mined after 50 blocks\n .catch(function () {\n timeoutCount++;\n // check to see if we are http polling\n if (!!isPolling) {\n // polling timeout is different than transactionBlockTimeout blocks since we are triggering every second\n if (timeoutCount - 1 >= method.transactionPollingTimeout) {\n sub.unsubscribe();\n promiseResolved = true;\n utils._fireError(errors.TransactionError('Transaction was not mined within ' + method.transactionPollingTimeout + ' seconds, please make sure your transaction was properly sent. Be aware that it might still be mined!'), defer.eventEmitter, defer.reject);\n }\n }\n else {\n if (timeoutCount - 1 >= method.transactionBlockTimeout) {\n sub.unsubscribe();\n promiseResolved = true;\n utils._fireError(errors.TransactionError('Transaction was not mined within ' + method.transactionBlockTimeout + ' blocks, please make sure your transaction was properly sent. Be aware that it might still be mined!'), defer.eventEmitter, defer.reject);\n }\n }\n });\n }\n else {\n sub.unsubscribe();\n promiseResolved = true;\n utils._fireError({\n message: 'Failed to subscribe to new newBlockHeaders to confirm the transaction receipts.',\n data: err\n }, defer.eventEmitter, defer.reject);\n }\n };\n // start watching for confirmation depending on the support features of the provider\n var startWatching = function (existingReceipt) {\n const startInterval = () => {\n intervalId = setInterval(checkConfirmation.bind(null, existingReceipt, true), 1000);\n };\n if (!this.requestManager.provider.on) {\n startInterval();\n }\n else {\n _ethereumCall.subscribe('newBlockHeaders', function (err, blockHeader, sub) {\n if (err || !blockHeader) {\n // fall back to polling\n startInterval();\n }\n else {\n checkConfirmation(existingReceipt, false, err, blockHeader, sub);\n }\n });\n }\n }.bind(this);\n // first check if we already have a confirmed transaction\n _ethereumCall.getTransactionReceipt(result)\n .then(function (receipt) {\n if (receipt && receipt.blockHash) {\n if (defer.eventEmitter.listeners('confirmation').length > 0) {\n // We must keep on watching for new Blocks, if a confirmation listener is present\n startWatching(receipt);\n }\n checkConfirmation(receipt, false);\n }\n else if (!promiseResolved) {\n startWatching();\n }\n })\n .catch(function () {\n if (!promiseResolved)\n startWatching();\n });\n};\nvar getWallet = function (from, accounts) {\n var wallet = null;\n // is index given\n if (_.isNumber(from)) {\n wallet = accounts.wallet[from];\n // is account given\n }\n else if (_.isObject(from) && from.address && from.privateKey) {\n wallet = from;\n // search in wallet for address\n }\n else {\n wallet = accounts.wallet[from.toLowerCase()];\n }\n return wallet;\n};\nMethod.prototype.buildCall = function () {\n var method = this, isSendTx = (method.call === 'eth_sendTransaction' || method.call === 'eth_sendRawTransaction'), // || method.call === 'personal_sendTransaction'\n isCall = (method.call === 'eth_call');\n // actual send function\n var send = function () {\n var defer = promiEvent(!isSendTx), payload = method.toPayload(Array.prototype.slice.call(arguments));\n // CALLBACK function\n var sendTxCallback = function (err, result) {\n if (method.handleRevert && isCall && method.abiCoder) {\n var reasonData;\n // Ganache / Geth <= 1.9.13 return the reason data as a successful eth_call response\n // Geth >= 1.9.15 attaches the reason data to an error object.\n // Geth 1.9.14 is missing revert reason (https://github.com/ethereum/web3.js/issues/3520)\n if (!err && method.isRevertReasonString(result)) {\n reasonData = result.substring(10);\n }\n else if (err && err.data) {\n reasonData = err.data.substring(10);\n }\n if (reasonData) {\n var reason = method.abiCoder.decodeParameter('string', '0x' + reasonData);\n var signature = 'Error(String)';\n utils._fireError(errors.RevertInstructionError(reason, signature), defer.eventEmitter, defer.reject, payload.callback, {\n reason: reason,\n signature: signature\n });\n return;\n }\n }\n try {\n result = method.formatOutput(result);\n }\n catch (e) {\n err = e;\n }\n if (result instanceof Error) {\n err = result;\n }\n if (!err) {\n if (payload.callback) {\n payload.callback(null, result);\n }\n }\n else {\n if (err.error) {\n err = err.error;\n }\n return utils._fireError(err, defer.eventEmitter, defer.reject, payload.callback);\n }\n // return PROMISE\n if (!isSendTx) {\n if (!err) {\n defer.resolve(result);\n }\n // return PROMIEVENT\n }\n else {\n defer.eventEmitter.emit('transactionHash', result);\n method._confirmTransaction(defer, result, payload);\n }\n };\n // SENDS the SIGNED SIGNATURE\n var sendSignedTx = function (sign) {\n var signedPayload = _.extend({}, payload, {\n method: 'eth_sendRawTransaction',\n params: [sign.rawTransaction]\n });\n method.requestManager.send(signedPayload, sendTxCallback);\n };\n var sendRequest = function (payload, method) {\n if (method && method.accounts && method.accounts.wallet && method.accounts.wallet.length) {\n var wallet;\n // ETH_SENDTRANSACTION\n if (payload.method === 'eth_sendTransaction') {\n var tx = payload.params[0];\n wallet = getWallet((_.isObject(tx)) ? tx.from : null, method.accounts);\n // If wallet was found, sign tx, and send using sendRawTransaction\n if (wallet && wallet.privateKey) {\n var txOptions = _.omit(tx, 'from');\n if (method.defaultChain && !txOptions.chain) {\n txOptions.chain = method.defaultChain;\n }\n if (method.defaultHardfork && !txOptions.hardfork) {\n txOptions.hardfork = method.defaultHardfork;\n }\n if (method.defaultCommon && !txOptions.common) {\n txOptions.common = method.defaultCommon;\n }\n method.accounts.signTransaction(txOptions, wallet.privateKey)\n .then(sendSignedTx)\n .catch(function (err) {\n if (_.isFunction(defer.eventEmitter.listeners) && defer.eventEmitter.listeners('error').length) {\n try {\n defer.eventEmitter.emit('error', err);\n }\n catch (err) {\n // Ignore userland error prevent it to bubble up within web3.\n }\n defer.eventEmitter.removeAllListeners();\n defer.eventEmitter.catch(function () {\n });\n }\n defer.reject(err);\n });\n return;\n }\n // ETH_SIGN\n }\n else if (payload.method === 'eth_sign') {\n var data = payload.params[1];\n wallet = getWallet(payload.params[0], method.accounts);\n // If wallet was found, sign tx, and send using sendRawTransaction\n if (wallet && wallet.privateKey) {\n var sign = method.accounts.sign(data, wallet.privateKey);\n if (payload.callback) {\n payload.callback(null, sign.signature);\n }\n defer.resolve(sign.signature);\n return;\n }\n }\n }\n return method.requestManager.send(payload, sendTxCallback);\n };\n // Send the actual transaction\n if (isSendTx && _.isObject(payload.params[0]) && typeof payload.params[0].gasPrice === 'undefined') {\n var getGasPrice = (new Method({\n name: 'getGasPrice',\n call: 'eth_gasPrice',\n params: 0\n })).createFunction(method.requestManager);\n getGasPrice(function (err, gasPrice) {\n if (gasPrice) {\n payload.params[0].gasPrice = gasPrice;\n }\n if (isSendTx) {\n setTimeout(() => {\n defer.eventEmitter.emit('sending', payload);\n }, 0);\n }\n sendRequest(payload, method);\n });\n }\n else {\n if (isSendTx) {\n setTimeout(() => {\n defer.eventEmitter.emit('sending', payload);\n }, 0);\n }\n sendRequest(payload, method);\n }\n if (isSendTx) {\n setTimeout(() => {\n defer.eventEmitter.emit('sent', payload);\n }, 0);\n }\n return defer.eventEmitter;\n };\n // necessary to attach things to the method\n send.method = method;\n // necessary for batch requests\n send.request = this.request.bind(this);\n return send;\n};\n/**\n * Returns the revert reason string if existing or otherwise false.\n *\n * @method getRevertReason\n *\n * @param {Object} txOptions\n * @param {Number} blockNumber\n *\n * @returns {Promise}\n */\nMethod.prototype.getRevertReason = function (txOptions, blockNumber) {\n var self = this;\n return new Promise(function (resolve, reject) {\n (new Method({\n name: 'call',\n call: 'eth_call',\n params: 2,\n abiCoder: self.abiCoder,\n handleRevert: true\n }))\n .createFunction(self.requestManager)(txOptions, utils.numberToHex(blockNumber))\n .then(function () {\n resolve(false);\n })\n .catch(function (error) {\n if (error.reason) {\n resolve({\n reason: error.reason,\n signature: error.signature\n });\n }\n else {\n reject(error);\n }\n });\n });\n};\n/**\n * Checks if the given hex string is a revert message from the EVM\n *\n * @method isRevertReasonString\n *\n * @param {String} data - Hex string prefixed with 0x\n *\n * @returns {Boolean}\n */\nMethod.prototype.isRevertReasonString = function (data) {\n return _.isString(data) && ((data.length - 2) / 2) % 32 === 4 && data.substring(0, 10) === '0x08c379a0';\n};\n/**\n * Should be called to create the pure JSONRPC request which can be used in a batch request\n *\n * @method request\n * @return {Object} jsonrpc request\n */\nMethod.prototype.request = function () {\n var payload = this.toPayload(Array.prototype.slice.call(arguments));\n payload.format = this.formatOutput.bind(this);\n return payload;\n};\nmodule.exports = Method;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","module.exports = require(\"regenerator-runtime\");\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","export const version = \"hash/5.0.5\";\n//# sourceMappingURL=_version.js.map","module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar isHexPrefixed = require('is-hex-prefixed');\nvar stripHexPrefix = require('strip-hex-prefix');\n\n/**\n * Pads a `String` to have an even length\n * @param {String} value\n * @return {String} output\n */\nfunction padToEven(value) {\n var a = value; // eslint-disable-line\n\n if (typeof a !== 'string') {\n throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');\n }\n\n if (a.length % 2) {\n a = '0' + a;\n }\n\n return a;\n}\n\n/**\n * Converts a `Number` into a hex `String`\n * @param {Number} i\n * @return {String}\n */\nfunction intToHex(i) {\n var hex = i.toString(16); // eslint-disable-line\n\n return '0x' + hex;\n}\n\n/**\n * Converts an `Number` to a `Buffer`\n * @param {Number} i\n * @return {Buffer}\n */\nfunction intToBuffer(i) {\n var hex = intToHex(i);\n\n return new Buffer(padToEven(hex.slice(2)), 'hex');\n}\n\n/**\n * Get the binary size of a string\n * @param {String} str\n * @return {Number}\n */\nfunction getBinarySize(str) {\n if (typeof str !== 'string') {\n throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \\'str\\' to be type String, got \\'' + typeof str + '\\'.');\n }\n\n return Buffer.byteLength(str, 'utf8');\n}\n\n/**\n * Returns TRUE if the first specified array contains all elements\n * from the second one. FALSE otherwise.\n *\n * @param {array} superset\n * @param {array} subset\n *\n * @returns {boolean}\n */\nfunction arrayContainsArray(superset, subset, some) {\n if (Array.isArray(superset) !== true) {\n throw new Error('[ethjs-util] method arrayContainsArray requires input \\'superset\\' to be an array got type \\'' + typeof superset + '\\'');\n }\n if (Array.isArray(subset) !== true) {\n throw new Error('[ethjs-util] method arrayContainsArray requires input \\'subset\\' to be an array got type \\'' + typeof subset + '\\'');\n }\n\n return subset[Boolean(some) && 'some' || 'every'](function (value) {\n return superset.indexOf(value) >= 0;\n });\n}\n\n/**\n * Should be called to get utf8 from it's hex representation\n *\n * @method toUtf8\n * @param {String} string in hex\n * @returns {String} ascii string representation of hex value\n */\nfunction toUtf8(hex) {\n var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^0+|0+$/g, '')), 'hex');\n\n return bufferValue.toString('utf8');\n}\n\n/**\n * Should be called to get ascii from it's hex representation\n *\n * @method toAscii\n * @param {String} string in hex\n * @returns {String} ascii string representation of hex value\n */\nfunction toAscii(hex) {\n var str = ''; // eslint-disable-line\n var i = 0,\n l = hex.length; // eslint-disable-line\n\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n\n for (; i < l; i += 2) {\n var code = parseInt(hex.substr(i, 2), 16);\n str += String.fromCharCode(code);\n }\n\n return str;\n}\n\n/**\n * Should be called to get hex representation (prefixed by 0x) of utf8 string\n *\n * @method fromUtf8\n * @param {String} string\n * @param {Number} optional padding\n * @returns {String} hex representation of input string\n */\nfunction fromUtf8(stringValue) {\n var str = new Buffer(stringValue, 'utf8');\n\n return '0x' + padToEven(str.toString('hex')).replace(/^0+|0+$/g, '');\n}\n\n/**\n * Should be called to get hex representation (prefixed by 0x) of ascii string\n *\n * @method fromAscii\n * @param {String} string\n * @param {Number} optional padding\n * @returns {String} hex representation of input string\n */\nfunction fromAscii(stringValue) {\n var hex = ''; // eslint-disable-line\n for (var i = 0; i < stringValue.length; i++) {\n // eslint-disable-line\n var code = stringValue.charCodeAt(i);\n var n = code.toString(16);\n hex += n.length < 2 ? '0' + n : n;\n }\n\n return '0x' + hex;\n}\n\n/**\n * getKeys([{a: 1, b: 2}, {a: 3, b: 4}], 'a') => [1, 3]\n *\n * @method getKeys get specific key from inner object array of objects\n * @param {String} params\n * @param {String} key\n * @param {Boolean} allowEmpty\n * @returns {Array} output just a simple array of output keys\n */\nfunction getKeys(params, key, allowEmpty) {\n if (!Array.isArray(params)) {\n throw new Error('[ethjs-util] method getKeys expecting type Array as \\'params\\' input, got \\'' + typeof params + '\\'');\n }\n if (typeof key !== 'string') {\n throw new Error('[ethjs-util] method getKeys expecting type String for input \\'key\\' got \\'' + typeof key + '\\'.');\n }\n\n var result = []; // eslint-disable-line\n\n for (var i = 0; i < params.length; i++) {\n // eslint-disable-line\n var value = params[i][key]; // eslint-disable-line\n if (allowEmpty && !value) {\n value = '';\n } else if (typeof value !== 'string') {\n throw new Error('invalid abi');\n }\n result.push(value);\n }\n\n return result;\n}\n\n/**\n * Is the string a hex string.\n *\n * @method check if string is hex string of specific length\n * @param {String} value\n * @param {Number} length\n * @returns {Boolean} output the string is a hex string\n */\nfunction isHexString(value, length) {\n if (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = {\n arrayContainsArray: arrayContainsArray,\n intToBuffer: intToBuffer,\n getBinarySize: getBinarySize,\n isHexPrefixed: isHexPrefixed,\n stripHexPrefix: stripHexPrefix,\n padToEven: padToEven,\n intToHex: intToHex,\n fromAscii: fromAscii,\n fromUtf8: fromUtf8,\n toAscii: toAscii,\n toUtf8: toUtf8,\n getKeys: getKeys,\n isHexString: isHexString\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ethjsUtil = require('ethjs-util');\nvar BN = require(\"bn.js\");\n/**\n * Returns a buffer filled with 0s.\n * @param bytes the number of bytes the buffer should be\n */\nexports.zeros = function (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0);\n};\n/**\n * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param msg the value to pad (Buffer|Array)\n * @param length the number of bytes the output should be\n * @param right whether to start padding form the left or right\n * @return (Buffer|Array)\n */\nexports.setLengthLeft = function (msg, length, right) {\n if (right === void 0) { right = false; }\n var buf = exports.zeros(length);\n msg = exports.toBuffer(msg);\n if (right) {\n if (msg.length < length) {\n msg.copy(buf);\n return buf;\n }\n return msg.slice(0, length);\n }\n else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length);\n return buf;\n }\n return msg.slice(-length);\n }\n};\nexports.setLength = exports.setLengthLeft;\n/**\n * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param msg the value to pad (Buffer|Array)\n * @param length the number of bytes the output should be\n * @return (Buffer|Array)\n */\nexports.setLengthRight = function (msg, length) {\n return exports.setLength(msg, length, true);\n};\n/**\n * Trims leading zeros from a `Buffer` or an `Array`.\n * @param a (Buffer|Array|String)\n * @return (Buffer|Array|String)\n */\nexports.unpad = function (a) {\n a = ethjsUtil.stripHexPrefix(a);\n var first = a[0];\n while (a.length > 0 && first.toString() === '0') {\n a = a.slice(1);\n first = a[0];\n }\n return a;\n};\nexports.stripZeros = exports.unpad;\n/**\n * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.\n * @param v the value\n */\nexports.toBuffer = function (v) {\n if (!Buffer.isBuffer(v)) {\n if (Array.isArray(v)) {\n v = Buffer.from(v);\n }\n else if (typeof v === 'string') {\n if (ethjsUtil.isHexString(v)) {\n v = Buffer.from(ethjsUtil.padToEven(ethjsUtil.stripHexPrefix(v)), 'hex');\n }\n else {\n throw new Error(\"Cannot convert string to buffer. toBuffer only supports 0x-prefixed hex strings and this string was given: \" + v);\n }\n }\n else if (typeof v === 'number') {\n v = ethjsUtil.intToBuffer(v);\n }\n else if (v === null || v === undefined) {\n v = Buffer.allocUnsafe(0);\n }\n else if (BN.isBN(v)) {\n v = v.toArrayLike(Buffer);\n }\n else if (v.toArray) {\n // converts a BN to a Buffer\n v = Buffer.from(v.toArray());\n }\n else {\n throw new Error('invalid type');\n }\n }\n return v;\n};\n/**\n * Converts a `Buffer` to a `Number`.\n * @param buf `Buffer` object to convert\n * @throws If the input number exceeds 53 bits.\n */\nexports.bufferToInt = function (buf) {\n return new BN(exports.toBuffer(buf)).toNumber();\n};\n/**\n * Converts a `Buffer` into a `0x`-prefixed hex `String`.\n * @param buf `Buffer` object to convert\n */\nexports.bufferToHex = function (buf) {\n buf = exports.toBuffer(buf);\n return '0x' + buf.toString('hex');\n};\n/**\n * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes 256-bit numbers.\n * @param num Signed integer value\n */\nexports.fromSigned = function (num) {\n return new BN(num).fromTwos(256);\n};\n/**\n * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes 256-bit numbers.\n * @param num\n */\nexports.toUnsigned = function (num) {\n return Buffer.from(num.toTwos(256).toArray());\n};\n/**\n * Adds \"0x\" to a given `String` if it does not already start with \"0x\".\n */\nexports.addHexPrefix = function (str) {\n if (typeof str !== 'string') {\n return str;\n }\n return ethjsUtil.isHexPrefixed(str) ? str : '0x' + str;\n};\n/**\n * Converts a `Buffer` or `Array` to JSON.\n * @param ba (Buffer|Array)\n * @return (Array|String|null)\n */\nexports.baToJSON = function (ba) {\n if (Buffer.isBuffer(ba)) {\n return \"0x\" + ba.toString('hex');\n }\n else if (ba instanceof Array) {\n var array = [];\n for (var i = 0; i < ba.length; i++) {\n array.push(exports.baToJSON(ba[i]));\n }\n return array;\n }\n};\n//# sourceMappingURL=bytes.js.map","'use strict';\n\nif (!process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2016\n */\n\"use strict\";\nvar EventEmitter = require('eventemitter3');\n/**\n * This function generates a defer promise and adds eventEmitter functionality to it\n *\n * @method eventifiedPromise\n */\nvar PromiEvent = function PromiEvent(justPromise) {\n var resolve, reject, eventEmitter = new Promise(function () {\n resolve = arguments[0];\n reject = arguments[1];\n });\n if (justPromise) {\n return {\n resolve: resolve,\n reject: reject,\n eventEmitter: eventEmitter\n };\n }\n // get eventEmitter\n var emitter = new EventEmitter();\n // add eventEmitter to the promise\n eventEmitter._events = emitter._events;\n eventEmitter.emit = emitter.emit;\n eventEmitter.on = emitter.on;\n eventEmitter.once = emitter.once;\n eventEmitter.off = emitter.off;\n eventEmitter.listeners = emitter.listeners;\n eventEmitter.addListener = emitter.addListener;\n eventEmitter.removeListener = emitter.removeListener;\n eventEmitter.removeAllListeners = emitter.removeAllListeners;\n return {\n resolve: resolve,\n reject: reject,\n eventEmitter: eventEmitter\n };\n};\nPromiEvent.resolve = function (value) {\n var promise = PromiEvent(true);\n promise.resolve(value);\n return promise.eventEmitter;\n};\nmodule.exports = PromiEvent;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar Subscription = require('./subscription.js');\nvar Subscriptions = function Subscriptions(options) {\n this.name = options.name;\n this.type = options.type;\n this.subscriptions = options.subscriptions || {};\n this.requestManager = null;\n};\nSubscriptions.prototype.setRequestManager = function (rm) {\n this.requestManager = rm;\n};\nSubscriptions.prototype.attachToObject = function (obj) {\n var func = this.buildCall();\n var name = this.name.split('.');\n if (name.length > 1) {\n obj[name[0]] = obj[name[0]] || {};\n obj[name[0]][name[1]] = func;\n }\n else {\n obj[name[0]] = func;\n }\n};\nSubscriptions.prototype.buildCall = function () {\n var _this = this;\n return function () {\n if (!_this.subscriptions[arguments[0]]) {\n console.warn('Subscription ' + JSON.stringify(arguments[0]) + ' doesn\\'t exist. Subscribing anyway.');\n }\n var subscription = new Subscription({\n subscription: _this.subscriptions[arguments[0]] || {},\n requestManager: _this.requestManager,\n type: _this.type\n });\n return subscription.subscribe.apply(subscription, arguments);\n };\n};\nmodule.exports = {\n subscriptions: Subscriptions,\n subscription: Subscription\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar core = require('web3-core');\nvar Method = require('web3-core-method');\nvar utils = require('web3-utils');\nvar Net = function () {\n var _this = this;\n // sets _requestmanager\n core.packageInit(this, arguments);\n [\n new Method({\n name: 'getId',\n call: 'net_version',\n params: 0,\n outputFormatter: parseInt\n }),\n new Method({\n name: 'isListening',\n call: 'net_listening',\n params: 0\n }),\n new Method({\n name: 'getPeerCount',\n call: 'net_peerCount',\n params: 0,\n outputFormatter: utils.hexToNumber\n })\n ].forEach(function (method) {\n method.attachToObject(_this);\n method.setRequestManager(_this._requestManager);\n });\n};\ncore.addProviders(Net);\nmodule.exports = Net;\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","// This was ported from https://github.com/emn178/js-sha3, with some minor\n// modifications and pruning. It is licensed under MIT:\n//\n// Copyright 2015-2016 Chen, Yi-Cyuan\n// \n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to\n// the following conditions:\n// \n// The above copyright notice and this permission notice shall be\n// included in all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nconst HEX_CHARS = '0123456789abcdef'.split('');\nconst KECCAK_PADDING = [1, 256, 65536, 16777216];\nconst SHIFT = [0, 8, 16, 24];\nconst RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n\nconst Keccak = bits => ({\n blocks: [],\n reset: true,\n block: 0,\n start: 0,\n blockCount: 1600 - (bits << 1) >> 5,\n outputBlocks: bits >> 5,\n s: (s => [].concat(s, s, s, s, s))([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n});\n\nconst update = (state, message) => {\n var length = message.length,\n blocks = state.blocks,\n byteCount = state.blockCount << 2,\n blockCount = state.blockCount,\n outputBlocks = state.outputBlocks,\n s = state.s,\n index = 0,\n i,\n code;\n\n // update\n while (index < length) {\n if (state.reset) {\n state.reset = false;\n blocks[0] = state.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (typeof message !== \"string\") {\n for (i = state.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = state.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | code >> 6) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | code >> 12) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + ((code & 0x3ff) << 10 | message.charCodeAt(++index) & 0x3ff);\n blocks[i >> 2] |= (0xf0 | code >> 18) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 12 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code >> 6 & 0x3f) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | code & 0x3f) << SHIFT[i++ & 3];\n }\n }\n }\n state.lastByteIndex = i;\n if (i >= byteCount) {\n state.start = i - byteCount;\n state.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n state.reset = true;\n } else {\n state.start = i;\n }\n }\n\n // finalize\n i = state.lastByteIndex;\n blocks[i >> 2] |= KECCAK_PADDING[i & 3];\n if (state.lastByteIndex === byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n\n // toString\n var hex = '',\n i = 0,\n j = 0,\n block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[block >> 4 & 0x0F] + HEX_CHARS[block & 0x0F] + HEX_CHARS[block >> 12 & 0x0F] + HEX_CHARS[block >> 8 & 0x0F] + HEX_CHARS[block >> 20 & 0x0F] + HEX_CHARS[block >> 16 & 0x0F] + HEX_CHARS[block >> 28 & 0x0F] + HEX_CHARS[block >> 24 & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n return \"0x\" + hex;\n};\n\nconst f = s => {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ (c2 << 1 | c3 >>> 31);\n l = c9 ^ (c3 << 1 | c2 >>> 31);\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ (c4 << 1 | c5 >>> 31);\n l = c1 ^ (c5 << 1 | c4 >>> 31);\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ (c6 << 1 | c7 >>> 31);\n l = c3 ^ (c7 << 1 | c6 >>> 31);\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ (c8 << 1 | c9 >>> 31);\n l = c5 ^ (c9 << 1 | c8 >>> 31);\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ (c0 << 1 | c1 >>> 31);\n l = c7 ^ (c1 << 1 | c0 >>> 31);\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = s[11] << 4 | s[10] >>> 28;\n b33 = s[10] << 4 | s[11] >>> 28;\n b14 = s[20] << 3 | s[21] >>> 29;\n b15 = s[21] << 3 | s[20] >>> 29;\n b46 = s[31] << 9 | s[30] >>> 23;\n b47 = s[30] << 9 | s[31] >>> 23;\n b28 = s[40] << 18 | s[41] >>> 14;\n b29 = s[41] << 18 | s[40] >>> 14;\n b20 = s[2] << 1 | s[3] >>> 31;\n b21 = s[3] << 1 | s[2] >>> 31;\n b2 = s[13] << 12 | s[12] >>> 20;\n b3 = s[12] << 12 | s[13] >>> 20;\n b34 = s[22] << 10 | s[23] >>> 22;\n b35 = s[23] << 10 | s[22] >>> 22;\n b16 = s[33] << 13 | s[32] >>> 19;\n b17 = s[32] << 13 | s[33] >>> 19;\n b48 = s[42] << 2 | s[43] >>> 30;\n b49 = s[43] << 2 | s[42] >>> 30;\n b40 = s[5] << 30 | s[4] >>> 2;\n b41 = s[4] << 30 | s[5] >>> 2;\n b22 = s[14] << 6 | s[15] >>> 26;\n b23 = s[15] << 6 | s[14] >>> 26;\n b4 = s[25] << 11 | s[24] >>> 21;\n b5 = s[24] << 11 | s[25] >>> 21;\n b36 = s[34] << 15 | s[35] >>> 17;\n b37 = s[35] << 15 | s[34] >>> 17;\n b18 = s[45] << 29 | s[44] >>> 3;\n b19 = s[44] << 29 | s[45] >>> 3;\n b10 = s[6] << 28 | s[7] >>> 4;\n b11 = s[7] << 28 | s[6] >>> 4;\n b42 = s[17] << 23 | s[16] >>> 9;\n b43 = s[16] << 23 | s[17] >>> 9;\n b24 = s[26] << 25 | s[27] >>> 7;\n b25 = s[27] << 25 | s[26] >>> 7;\n b6 = s[36] << 21 | s[37] >>> 11;\n b7 = s[37] << 21 | s[36] >>> 11;\n b38 = s[47] << 24 | s[46] >>> 8;\n b39 = s[46] << 24 | s[47] >>> 8;\n b30 = s[8] << 27 | s[9] >>> 5;\n b31 = s[9] << 27 | s[8] >>> 5;\n b12 = s[18] << 20 | s[19] >>> 12;\n b13 = s[19] << 20 | s[18] >>> 12;\n b44 = s[29] << 7 | s[28] >>> 25;\n b45 = s[28] << 7 | s[29] >>> 25;\n b26 = s[38] << 8 | s[39] >>> 24;\n b27 = s[39] << 8 | s[38] >>> 24;\n b8 = s[48] << 14 | s[49] >>> 18;\n b9 = s[49] << 14 | s[48] >>> 18;\n\n s[0] = b0 ^ ~b2 & b4;\n s[1] = b1 ^ ~b3 & b5;\n s[10] = b10 ^ ~b12 & b14;\n s[11] = b11 ^ ~b13 & b15;\n s[20] = b20 ^ ~b22 & b24;\n s[21] = b21 ^ ~b23 & b25;\n s[30] = b30 ^ ~b32 & b34;\n s[31] = b31 ^ ~b33 & b35;\n s[40] = b40 ^ ~b42 & b44;\n s[41] = b41 ^ ~b43 & b45;\n s[2] = b2 ^ ~b4 & b6;\n s[3] = b3 ^ ~b5 & b7;\n s[12] = b12 ^ ~b14 & b16;\n s[13] = b13 ^ ~b15 & b17;\n s[22] = b22 ^ ~b24 & b26;\n s[23] = b23 ^ ~b25 & b27;\n s[32] = b32 ^ ~b34 & b36;\n s[33] = b33 ^ ~b35 & b37;\n s[42] = b42 ^ ~b44 & b46;\n s[43] = b43 ^ ~b45 & b47;\n s[4] = b4 ^ ~b6 & b8;\n s[5] = b5 ^ ~b7 & b9;\n s[14] = b14 ^ ~b16 & b18;\n s[15] = b15 ^ ~b17 & b19;\n s[24] = b24 ^ ~b26 & b28;\n s[25] = b25 ^ ~b27 & b29;\n s[34] = b34 ^ ~b36 & b38;\n s[35] = b35 ^ ~b37 & b39;\n s[44] = b44 ^ ~b46 & b48;\n s[45] = b45 ^ ~b47 & b49;\n s[6] = b6 ^ ~b8 & b0;\n s[7] = b7 ^ ~b9 & b1;\n s[16] = b16 ^ ~b18 & b10;\n s[17] = b17 ^ ~b19 & b11;\n s[26] = b26 ^ ~b28 & b20;\n s[27] = b27 ^ ~b29 & b21;\n s[36] = b36 ^ ~b38 & b30;\n s[37] = b37 ^ ~b39 & b31;\n s[46] = b46 ^ ~b48 & b40;\n s[47] = b47 ^ ~b49 & b41;\n s[8] = b8 ^ ~b0 & b2;\n s[9] = b9 ^ ~b1 & b3;\n s[18] = b18 ^ ~b10 & b12;\n s[19] = b19 ^ ~b11 & b13;\n s[28] = b28 ^ ~b20 & b22;\n s[29] = b29 ^ ~b21 & b23;\n s[38] = b38 ^ ~b30 & b32;\n s[39] = b39 ^ ~b31 & b33;\n s[48] = b48 ^ ~b40 & b42;\n s[49] = b49 ^ ~b41 & b43;\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n};\n\nconst keccak = bits => str => {\n var msg;\n if (str.slice(0, 2) === \"0x\") {\n msg = [];\n for (var i = 2, l = str.length; i < l; i += 2) msg.push(parseInt(str.slice(i, i + 2), 16));\n } else {\n msg = str;\n }\n return update(Keccak(bits, bits), msg);\n};\n\nmodule.exports = {\n keccak256: keccak(256),\n keccak512: keccak(512),\n keccak256s: keccak(256),\n keccak512s: keccak(512)\n};","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar XMLHttpRequestEventTarget = /** @class */ (function () {\n function XMLHttpRequestEventTarget() {\n this.listeners = {};\n }\n XMLHttpRequestEventTarget.prototype.addEventListener = function (eventType, listener) {\n eventType = eventType.toLowerCase();\n this.listeners[eventType] = this.listeners[eventType] || [];\n this.listeners[eventType].push(listener.handleEvent || listener);\n };\n XMLHttpRequestEventTarget.prototype.removeEventListener = function (eventType, listener) {\n eventType = eventType.toLowerCase();\n if (!this.listeners[eventType]) {\n return;\n }\n var index = this.listeners[eventType].indexOf(listener.handleEvent || listener);\n if (index < 0) {\n return;\n }\n this.listeners[eventType].splice(index, 1);\n };\n XMLHttpRequestEventTarget.prototype.dispatchEvent = function (event) {\n var eventType = event.type.toLowerCase();\n event.target = this; // TODO: set event.currentTarget?\n if (this.listeners[eventType]) {\n for (var _i = 0, _a = this.listeners[eventType]; _i < _a.length; _i++) {\n var listener_1 = _a[_i];\n listener_1.call(this, event);\n }\n }\n var listener = this[\"on\" + eventType];\n if (listener) {\n listener.call(this, event);\n }\n return true;\n };\n return XMLHttpRequestEventTarget;\n}());\nexports.XMLHttpRequestEventTarget = XMLHttpRequestEventTarget;\n//# sourceMappingURL=xml-http-request-event-target.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nconst _constructorGuard = {};\nlet ModifiersBytes = { calldata: true, memory: true, storage: true };\nlet ModifiersNest = { calldata: true, memory: true };\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n }\n else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n }\n else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param, allowIndexed) {\n let originalParam = param;\n function throwError(i) {\n logger.throwArgumentError(`unexpected character at position ${i}`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n function newNode(parent) {\n let node = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) {\n node.indexed = false;\n }\n return node;\n }\n let parent = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n }\n else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [newNode(node)];\n node = node.components[0];\n break;\n case \")\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let child = node;\n node = node.parent;\n if (!node) {\n throwError(i);\n }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n case \",\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let sibling = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n case \" \":\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n if (node.indexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n else {\n node.state.allowName = false;\n }\n }\n }\n break;\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n }\n else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n }\n else if (node.state.readArray) {\n node.type += c;\n }\n else {\n throwError(i);\n }\n }\n }\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n delete parent.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n parent.type = verifyType(parent.type);\n return parent;\n}\nfunction populate(object, params) {\n for (let key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\nexport const FormatTypes = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n // Human-Readble with nice spacing, including all names\n full: \"full\",\n // JSON-format a la Solidity\n json: \"json\"\n});\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport class ParamType {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n populate(this, params);\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n }\n else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\" : this.type)\n });\n }\n this._isParamType = true;\n Object.freeze(this);\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, addres bar) indexed baz\"\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n let result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name: (this.name || undefined)\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n }\n else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static from(value, allowIndexed) {\n if (typeof (value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n static fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null : !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject) : null)\n });\n }\n static fromString(value, allowIndexed) {\n function ParamTypify(node) {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n static isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n}\n;\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\nexport class Fragment {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n static from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n if (typeof (value) === \"string\") {\n return Fragment.fromString(value);\n }\n return Fragment.fromObject(value);\n }\n static fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n static fromString(value) {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n }\n else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n }\n else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n }\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n static isFragment(value) {\n return !!(value && value._isFragment);\n }\n}\nexport class EventFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n static fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n const params = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n return new EventFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n static isEventFragment(value) {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\nfunction parseGas(value, params) {\n params.gas = null;\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n return value;\n}\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\nfunction verifyState(value) {\n let result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n }\n else if (value.payable != null) {\n result.payable = !!value.payable;\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n result.constant = !!value.constant;\n if (result.constant) {\n result.stateMutability = \"view\";\n }\n else {\n result.stateMutability = (result.payable ? \"payable\" : \"nonpayable\");\n }\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n }\n else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\" : \"payable\");\n }\n else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n return result;\n}\nexport class ConstructorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payble: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n let result = \"constructor(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n const params = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new ConstructorFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"constructor\" };\n value = parseGas(value, params);\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n static isConstructorFragment(value) {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\nexport class FunctionFragment extends ConstructorFragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payble: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n ouputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n }\n else if (this.constant) {\n result += \"view \";\n }\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map((output) => output.format(format)).join(\", \") + \") \";\n }\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n static fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n let state = verifyState(value);\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new FunctionFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"function\" };\n value = parseGas(value, params);\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params);\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n }\n else {\n params.outputs = [];\n }\n return FunctionFragment.fromObject(params);\n }\n static isFunctionFragment(value) {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n//export class ErrorFragment extends Fragment {\n//}\n//export class StructFragment extends Fragment {\n//}\nfunction verifyType(type) {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n }\n else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n // @TODO: more verification\n return type;\n}\nconst regexIdentifier = new RegExp(\"^[A-Za-z_][A-Za-z0-9_]*$\");\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${value}\"`, \"value\", value);\n }\n return value;\n}\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\nfunction splitNesting(value) {\n value = value.trim();\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n }\n else {\n accum += c;\n if (c === \"(\") {\n depth++;\n }\n else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) {\n result.push(accum);\n }\n return result;\n}\n//# sourceMappingURL=fragments.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong reperesentation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid contimuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","/**\n * Multihash implementation in JavaScript.\n *\n * @module multihash\n */\n'use strict'\n\nconst { Buffer } = require('buffer')\nconst multibase = require('multibase')\nconst varint = require('varint')\nconst cs = require('./constants')\n\nexports.names = cs.names\nexports.codes = cs.codes\nexports.defaultLengths = cs.defaultLengths\n\n/**\n * Convert the given multihash to a hex encoded string.\n *\n * @param {Buffer} hash\n * @returns {string}\n */\nexports.toHexString = function toHexString (hash) {\n if (!Buffer.isBuffer(hash)) {\n throw new Error('must be passed a buffer')\n }\n\n return hash.toString('hex')\n}\n\n/**\n * Convert the given hex encoded string to a multihash.\n *\n * @param {string} hash\n * @returns {Buffer}\n */\nexports.fromHexString = function fromHexString (hash) {\n return Buffer.from(hash, 'hex')\n}\n\n/**\n * Convert the given multihash to a base58 encoded string.\n *\n * @param {Buffer} hash\n * @returns {string}\n */\nexports.toB58String = function toB58String (hash) {\n if (!Buffer.isBuffer(hash)) {\n throw new Error('must be passed a buffer')\n }\n\n return multibase.encode('base58btc', hash).toString().slice(1)\n}\n\n/**\n * Convert the given base58 encoded string to a multihash.\n *\n * @param {string|Buffer} hash\n * @returns {Buffer}\n */\nexports.fromB58String = function fromB58String (hash) {\n let encoded = hash\n if (Buffer.isBuffer(hash)) {\n encoded = hash.toString()\n }\n\n return multibase.decode('z' + encoded)\n}\n\n/**\n * Decode a hash from the given multihash.\n *\n * @param {Buffer} buf\n * @returns {{code: number, name: string, length: number, digest: Buffer}} result\n */\nexports.decode = function decode (buf) {\n if (!(Buffer.isBuffer(buf))) {\n throw new Error('multihash must be a Buffer')\n }\n\n if (buf.length < 2) {\n throw new Error('multihash too short. must be > 2 bytes.')\n }\n\n const code = varint.decode(buf)\n if (!exports.isValidCode(code)) {\n throw new Error(`multihash unknown function code: 0x${code.toString(16)}`)\n }\n buf = buf.slice(varint.decode.bytes)\n\n const len = varint.decode(buf)\n if (len < 0) {\n throw new Error(`multihash invalid length: ${len}`)\n }\n buf = buf.slice(varint.decode.bytes)\n\n if (buf.length !== len) {\n throw new Error(`multihash length inconsistent: 0x${buf.toString('hex')}`)\n }\n\n return {\n code: code,\n name: cs.codes[code],\n length: len,\n digest: buf\n }\n}\n\n/**\n * Encode a hash digest along with the specified function code.\n *\n * > **Note:** the length is derived from the length of the digest itself.\n *\n * @param {Buffer} digest\n * @param {string|number} code\n * @param {number} [length]\n * @returns {Buffer}\n */\nexports.encode = function encode (digest, code, length) {\n if (!digest || code === undefined) {\n throw new Error('multihash encode requires at least two args: digest, code')\n }\n\n // ensure it's a hashfunction code.\n const hashfn = exports.coerceCode(code)\n\n if (!(Buffer.isBuffer(digest))) {\n throw new Error('digest should be a Buffer')\n }\n\n if (length == null) {\n length = digest.length\n }\n\n if (length && digest.length !== length) {\n throw new Error('digest length should be equal to specified length.')\n }\n\n return Buffer.concat([\n Buffer.from(varint.encode(hashfn)),\n Buffer.from(varint.encode(length)),\n digest\n ])\n}\n\n/**\n * Converts a hash function name into the matching code.\n * If passed a number it will return the number if it's a valid code.\n * @param {string|number} name\n * @returns {number}\n */\nexports.coerceCode = function coerceCode (name) {\n let code = name\n\n if (typeof name === 'string') {\n if (cs.names[name] === undefined) {\n throw new Error(`Unrecognized hash function named: ${name}`)\n }\n code = cs.names[name]\n }\n\n if (typeof code !== 'number') {\n throw new Error(`Hash function code should be a number. Got: ${code}`)\n }\n\n if (cs.codes[code] === undefined && !exports.isAppCode(code)) {\n throw new Error(`Unrecognized function code: ${code}`)\n }\n\n return code\n}\n\n/**\n * Checks wether a code is part of the app range\n *\n * @param {number} code\n * @returns {boolean}\n */\nexports.isAppCode = function appCode (code) {\n return code > 0 && code < 0x10\n}\n\n/**\n * Checks whether a multihash code is valid.\n *\n * @param {number} code\n * @returns {boolean}\n */\nexports.isValidCode = function validCode (code) {\n if (exports.isAppCode(code)) {\n return true\n }\n\n if (cs.codes[code]) {\n return true\n }\n\n return false\n}\n\n/**\n * Check if the given buffer is a valid multihash. Throws an error if it is not valid.\n *\n * @param {Buffer} multihash\n * @returns {undefined}\n * @throws {Error}\n */\nfunction validate (multihash) {\n exports.decode(multihash) // throws if bad.\n}\nexports.validate = validate\n\n/**\n * Returns a prefix from a valid multihash. Throws an error if it is not valid.\n *\n * @param {Buffer} multihash\n * @returns {undefined}\n * @throws {Error}\n */\nexports.prefix = function prefix (multihash) {\n validate(multihash)\n\n return multihash.slice(0, 2)\n}\n","const A = require(\"./array.js\");\n\nconst at = (bytes, index) => parseInt(bytes.slice(index * 2 + 2, index * 2 + 4), 16);\n\nconst random = bytes => {\n let rnd;\n if (typeof window !== \"undefined\" && window.crypto && window.crypto.getRandomValues) rnd = window.crypto.getRandomValues(new Uint8Array(bytes));else if (typeof require !== \"undefined\") rnd = require(\"c\" + \"rypto\").randomBytes(bytes);else throw \"Safe random numbers not available.\";\n let hex = \"0x\";\n for (let i = 0; i < bytes; ++i) hex += (\"00\" + rnd[i].toString(16)).slice(-2);\n return hex;\n};\n\nconst length = a => (a.length - 2) / 2;\n\nconst flatten = a => \"0x\" + a.reduce((r, s) => r + s.slice(2), \"\");\n\nconst slice = (i, j, bs) => \"0x\" + bs.slice(i * 2 + 2, j * 2 + 2);\n\nconst reverse = hex => {\n let rev = \"0x\";\n for (let i = 0, l = length(hex); i < l; ++i) {\n rev += hex.slice((l - i) * 2, (l - i + 1) * 2);\n }\n return rev;\n};\n\nconst pad = (l, hex) => hex.length === l * 2 + 2 ? hex : pad(l, \"0x\" + \"0\" + hex.slice(2));\n\nconst padRight = (l, hex) => hex.length === l * 2 + 2 ? hex : padRight(l, hex + \"0\");\n\nconst toArray = hex => {\n let arr = [];\n for (let i = 2, l = hex.length; i < l; i += 2) arr.push(parseInt(hex.slice(i, i + 2), 16));\n return arr;\n};\n\nconst fromArray = arr => {\n let hex = \"0x\";\n for (let i = 0, l = arr.length; i < l; ++i) {\n let b = arr[i];\n hex += (b < 16 ? \"0\" : \"\") + b.toString(16);\n }\n return hex;\n};\n\nconst toUint8Array = hex => new Uint8Array(toArray(hex));\n\nconst fromUint8Array = arr => fromArray([].slice.call(arr, 0));\n\nconst fromNumber = num => {\n let hex = num.toString(16);\n return hex.length % 2 === 0 ? \"0x\" + hex : \"0x0\" + hex;\n};\n\nconst toNumber = hex => parseInt(hex.slice(2), 16);\n\nconst concat = (a, b) => a.concat(b.slice(2));\n\nconst fromNat = bn => bn === \"0x0\" ? \"0x\" : bn.length % 2 === 0 ? bn : \"0x0\" + bn.slice(2);\n\nconst toNat = bn => bn[2] === \"0\" ? \"0x\" + bn.slice(3) : bn;\n\nconst fromAscii = ascii => {\n let hex = \"0x\";\n for (let i = 0; i < ascii.length; ++i) hex += (\"00\" + ascii.charCodeAt(i).toString(16)).slice(-2);\n return hex;\n};\n\nconst toAscii = hex => {\n let ascii = \"\";\n for (let i = 2; i < hex.length; i += 2) ascii += String.fromCharCode(parseInt(hex.slice(i, i + 2), 16));\n return ascii;\n};\n\n// From https://gist.github.com/pascaldekloe/62546103a1576803dade9269ccf76330\nconst fromString = s => {\n const makeByte = uint8 => {\n const b = uint8.toString(16);\n return b.length < 2 ? \"0\" + b : b;\n };\n let bytes = \"0x\";\n for (let ci = 0; ci != s.length; ci++) {\n let c = s.charCodeAt(ci);\n if (c < 128) {\n bytes += makeByte(c);\n continue;\n }\n if (c < 2048) {\n bytes += makeByte(c >> 6 | 192);\n } else {\n if (c > 0xd7ff && c < 0xdc00) {\n if (++ci == s.length) return null;\n let c2 = s.charCodeAt(ci);\n if (c2 < 0xdc00 || c2 > 0xdfff) return null;\n c = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n bytes += makeByte(c >> 18 | 240);\n bytes += makeByte(c >> 12 & 63 | 128);\n } else {\n // c <= 0xffff\n bytes += makeByte(c >> 12 | 224);\n }\n bytes += makeByte(c >> 6 & 63 | 128);\n }\n bytes += makeByte(c & 63 | 128);\n }\n return bytes;\n};\n\nconst toString = bytes => {\n let s = '';\n let i = 0;\n let l = length(bytes);\n while (i < l) {\n let c = at(bytes, i++);\n if (c > 127) {\n if (c > 191 && c < 224) {\n if (i >= l) return null;\n c = (c & 31) << 6 | at(bytes, i) & 63;\n } else if (c > 223 && c < 240) {\n if (i + 1 >= l) return null;\n c = (c & 15) << 12 | (at(bytes, i) & 63) << 6 | at(bytes, ++i) & 63;\n } else if (c > 239 && c < 248) {\n if (i + 2 >= l) return null;\n c = (c & 7) << 18 | (at(bytes, i) & 63) << 12 | (at(bytes, ++i) & 63) << 6 | at(bytes, ++i) & 63;\n } else return null;\n ++i;\n }\n if (c <= 0xffff) s += String.fromCharCode(c);else if (c <= 0x10ffff) {\n c -= 0x10000;\n s += String.fromCharCode(c >> 10 | 0xd800);\n s += String.fromCharCode(c & 0x3FF | 0xdc00);\n } else return null;\n }\n return s;\n};\n\nmodule.exports = {\n random,\n length,\n concat,\n flatten,\n slice,\n reverse,\n pad,\n padRight,\n fromAscii,\n toAscii,\n fromString,\n toString,\n fromNumber,\n toNumber,\n fromNat,\n toNat,\n fromArray,\n toArray,\n fromUint8Array,\n toUint8Array\n};","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var bn = require('bn.js');\nvar randomBytes = require('randombytes');\nmodule.exports = crt;\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(bn.mont(priv.modulus))\n .redPow(new bn(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder:r.invm(priv.modulus)\n };\n}\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var mod = bn.mont(priv.modulus);\n var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(bn.mont(priv.prime1));\n var c2 = blinded.toRed(bn.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1);\n var m2 = c2.redPow(priv.exponent2);\n m1 = m1.fromRed();\n m2 = m2.fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p);\n h.imul(q);\n m2.iadd(h);\n return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));\n}\ncrt.getr = getr;\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r = new bn(randomBytes(len));\n while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {\n r = new bn(randomBytes(len));\n }\n return r;\n}\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","'use strict'\nmodule.exports = require('./lib')(require('./lib/elliptic'))\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar transaction_1 = require(\"./transaction\");\nexports.Transaction = transaction_1.default;\nvar fake_1 = require(\"./fake\");\nexports.FakeTransaction = fake_1.default;\n//# sourceMappingURL=index.js.map","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar createKeccakHash = require('keccak');\nvar createHash = require('create-hash');\nvar ethjsUtil = require('ethjs-util');\nvar rlp = require(\"rlp\");\nvar bytes_1 = require(\"./bytes\");\n/**\n * Creates Keccak hash of the input\n * @param a The input data (Buffer|Array|String|Number) If the string is a 0x-prefixed hex value\n * it's interpreted as hexadecimal, otherwise as utf8.\n * @param bits The Keccak width\n */\nexports.keccak = function (a, bits) {\n if (bits === void 0) { bits = 256; }\n if (typeof a === 'string' && !ethjsUtil.isHexString(a)) {\n a = Buffer.from(a, 'utf8');\n }\n else {\n a = bytes_1.toBuffer(a);\n }\n if (!bits)\n bits = 256;\n return createKeccakHash(\"keccak\" + bits)\n .update(a)\n .digest();\n};\n/**\n * Creates Keccak-256 hash of the input, alias for keccak(a, 256).\n * @param a The input data (Buffer|Array|String|Number)\n */\nexports.keccak256 = function (a) {\n return exports.keccak(a);\n};\n/**\n * Creates SHA256 hash of the input.\n * @param a The input data (Buffer|Array|String|Number)\n */\nexports.sha256 = function (a) {\n a = bytes_1.toBuffer(a);\n return createHash('sha256')\n .update(a)\n .digest();\n};\n/**\n * Creates RIPEMD160 hash of the input.\n * @param a The input data (Buffer|Array|String|Number)\n * @param padded Whether it should be padded to 256 bits or not\n */\nexports.ripemd160 = function (a, padded) {\n a = bytes_1.toBuffer(a);\n var hash = createHash('rmd160')\n .update(a)\n .digest();\n if (padded === true) {\n return bytes_1.setLength(hash, 32);\n }\n else {\n return hash;\n }\n};\n/**\n * Creates SHA-3 hash of the RLP encoded version of the input.\n * @param a The input data\n */\nexports.rlphash = function (a) {\n return exports.keccak(rlp.encode(a));\n};\n//# sourceMappingURL=hash.js.map","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) { return false; }\n\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\tif (typeof value === 'function' && !value.prototype) { return true; }\n\tif (hasToStringTag) { return tryFunctionObject(value); }\n\tif (isES6ClassFn(value)) { return false; }\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buf' + 'fer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var isHexPrefixed = require('is-hex-prefixed');\n\n/**\n * Removes '0x' from a given `String` is present\n * @param {String} str the string value\n * @return {String|Optional} a string by pass if necessary\n */\nmodule.exports = function stripHexPrefix(str) {\n if (typeof str !== 'string') {\n return str;\n }\n\n return isHexPrefixed(str) ? str.slice(2) : str;\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file utils.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\nvar _ = require('underscore');\nvar BN = require('bn.js');\nvar numberToBN = require('number-to-bn');\nvar utf8 = require('utf8');\nvar Hash = require(\"eth-lib/lib/hash\");\nvar ethereumBloomFilters = require('ethereum-bloom-filters');\n/**\n * Returns true if object is BN, otherwise false\n *\n * @method isBN\n * @param {Object} object\n * @return {Boolean}\n */\nvar isBN = function (object) {\n return BN.isBN(object);\n};\n/**\n * Returns true if object is BigNumber, otherwise false\n *\n * @method isBigNumber\n * @param {Object} object\n * @return {Boolean}\n */\nvar isBigNumber = function (object) {\n return object && object.constructor && object.constructor.name === 'BigNumber';\n};\n/**\n * Takes an input and transforms it into an BN\n *\n * @method toBN\n * @param {Number|String|BN} number, string, HEX string or BN\n * @return {BN} BN\n */\nvar toBN = function (number) {\n try {\n return numberToBN.apply(null, arguments);\n }\n catch (e) {\n throw new Error(e + ' Given value: \"' + number + '\"');\n }\n};\n/**\n * Takes and input transforms it into BN and if it is negative value, into two's complement\n *\n * @method toTwosComplement\n * @param {Number|String|BN} number\n * @return {String}\n */\nvar toTwosComplement = function (number) {\n return '0x' + toBN(number).toTwos(256).toString(16, 64);\n};\n/**\n * Checks if the given string is an address\n *\n * @method isAddress\n * @param {String} address the given HEX address\n * @return {Boolean}\n */\nvar isAddress = function (address) {\n // check if it has the basic requirements of an address\n if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n return false;\n // If it's ALL lowercase or ALL upppercase\n }\n else if (/^(0x|0X)?[0-9a-f]{40}$/.test(address) || /^(0x|0X)?[0-9A-F]{40}$/.test(address)) {\n return true;\n // Otherwise check each case\n }\n else {\n return checkAddressChecksum(address);\n }\n};\n/**\n * Checks if the given string is a checksummed address\n *\n * @method checkAddressChecksum\n * @param {String} address the given HEX address\n * @return {Boolean}\n */\nvar checkAddressChecksum = function (address) {\n // Check each case\n address = address.replace(/^0x/i, '');\n var addressHash = sha3(address.toLowerCase()).replace(/^0x/i, '');\n for (var i = 0; i < 40; i++) {\n // the nth letter should be uppercase if the nth digit of casemap is 1\n if ((parseInt(addressHash[i], 16) > 7 && address[i].toUpperCase() !== address[i]) || (parseInt(addressHash[i], 16) <= 7 && address[i].toLowerCase() !== address[i])) {\n return false;\n }\n }\n return true;\n};\n/**\n * Should be called to pad string to expected length\n *\n * @method leftPad\n * @param {String} string to be padded\n * @param {Number} chars that result string should have\n * @param {String} sign, by default 0\n * @returns {String} right aligned string\n */\nvar leftPad = function (string, chars, sign) {\n var hasPrefix = /^0x/i.test(string) || typeof string === 'number';\n string = string.toString(16).replace(/^0x/i, '');\n var padding = (chars - string.length + 1 >= 0) ? chars - string.length + 1 : 0;\n return (hasPrefix ? '0x' : '') + new Array(padding).join(sign ? sign : \"0\") + string;\n};\n/**\n * Should be called to pad string to expected length\n *\n * @method rightPad\n * @param {String} string to be padded\n * @param {Number} chars that result string should have\n * @param {String} sign, by default 0\n * @returns {String} right aligned string\n */\nvar rightPad = function (string, chars, sign) {\n var hasPrefix = /^0x/i.test(string) || typeof string === 'number';\n string = string.toString(16).replace(/^0x/i, '');\n var padding = (chars - string.length + 1 >= 0) ? chars - string.length + 1 : 0;\n return (hasPrefix ? '0x' : '') + string + (new Array(padding).join(sign ? sign : \"0\"));\n};\n/**\n * Should be called to get hex representation (prefixed by 0x) of utf8 string\n *\n * @method utf8ToHex\n * @param {String} str\n * @returns {String} hex representation of input string\n */\nvar utf8ToHex = function (str) {\n str = utf8.encode(str);\n var hex = \"\";\n // remove \\u0000 padding from either side\n str = str.replace(/^(?:\\u0000)*/, '');\n str = str.split(\"\").reverse().join(\"\");\n str = str.replace(/^(?:\\u0000)*/, '');\n str = str.split(\"\").reverse().join(\"\");\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n // if (code !== 0) {\n var n = code.toString(16);\n hex += n.length < 2 ? '0' + n : n;\n // }\n }\n return \"0x\" + hex;\n};\n/**\n * Should be called to get utf8 from it's hex representation\n *\n * @method hexToUtf8\n * @param {String} hex\n * @returns {String} ascii string representation of hex value\n */\nvar hexToUtf8 = function (hex) {\n if (!isHexStrict(hex))\n throw new Error('The parameter \"' + hex + '\" must be a valid HEX string.');\n var str = \"\";\n var code = 0;\n hex = hex.replace(/^0x/i, '');\n // remove 00 padding from either side\n hex = hex.replace(/^(?:00)*/, '');\n hex = hex.split(\"\").reverse().join(\"\");\n hex = hex.replace(/^(?:00)*/, '');\n hex = hex.split(\"\").reverse().join(\"\");\n var l = hex.length;\n for (var i = 0; i < l; i += 2) {\n code = parseInt(hex.substr(i, 2), 16);\n // if (code !== 0) {\n str += String.fromCharCode(code);\n // }\n }\n return utf8.decode(str);\n};\n/**\n * Converts value to it's number representation\n *\n * @method hexToNumber\n * @param {String|Number|BN} value\n * @return {String}\n */\nvar hexToNumber = function (value) {\n if (!value) {\n return value;\n }\n if (_.isString(value) && !isHexStrict(value)) {\n throw new Error('Given value \"' + value + '\" is not a valid hex string.');\n }\n return toBN(value).toNumber();\n};\n/**\n * Converts value to it's decimal representation in string\n *\n * @method hexToNumberString\n * @param {String|Number|BN} value\n * @return {String}\n */\nvar hexToNumberString = function (value) {\n if (!value)\n return value;\n if (_.isString(value) && !isHexStrict(value)) {\n throw new Error('Given value \"' + value + '\" is not a valid hex string.');\n }\n return toBN(value).toString(10);\n};\n/**\n * Converts value to it's hex representation\n *\n * @method numberToHex\n * @param {String|Number|BN} value\n * @return {String}\n */\nvar numberToHex = function (value) {\n if (_.isNull(value) || _.isUndefined(value)) {\n return value;\n }\n if (!isFinite(value) && !isHexStrict(value)) {\n throw new Error('Given input \"' + value + '\" is not a number.');\n }\n var number = toBN(value);\n var result = number.toString(16);\n return number.lt(new BN(0)) ? '-0x' + result.substr(1) : '0x' + result;\n};\n/**\n * Convert a byte array to a hex string\n *\n * Note: Implementation from crypto-js\n *\n * @method bytesToHex\n * @param {Array} bytes\n * @return {String} the hex string\n */\nvar bytesToHex = function (bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n /* jshint ignore:start */\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n /* jshint ignore:end */\n }\n return '0x' + hex.join(\"\");\n};\n/**\n * Convert a hex string to a byte array\n *\n * Note: Implementation from crypto-js\n *\n * @method hexToBytes\n * @param {string} hex\n * @return {Array} the byte array\n */\nvar hexToBytes = function (hex) {\n hex = hex.toString(16);\n if (!isHexStrict(hex)) {\n throw new Error('Given value \"' + hex + '\" is not a valid hex string.');\n }\n hex = hex.replace(/^0x/i, '');\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n};\n/**\n * Auto converts any given value into it's hex representation.\n *\n * And even stringifys objects before.\n *\n * @method toHex\n * @param {String|Number|BN|Object|Buffer} value\n * @param {Boolean} returnType\n * @return {String}\n */\nvar toHex = function (value, returnType) {\n /*jshint maxcomplexity: false */\n if (isAddress(value)) {\n return returnType ? 'address' : '0x' + value.toLowerCase().replace(/^0x/i, '');\n }\n if (_.isBoolean(value)) {\n return returnType ? 'bool' : value ? '0x01' : '0x00';\n }\n if (Buffer.isBuffer(value)) {\n return '0x' + value.toString('hex');\n }\n if (_.isObject(value) && !isBigNumber(value) && !isBN(value)) {\n return returnType ? 'string' : utf8ToHex(JSON.stringify(value));\n }\n // if its a negative number, pass it through numberToHex\n if (_.isString(value)) {\n if (value.indexOf('-0x') === 0 || value.indexOf('-0X') === 0) {\n return returnType ? 'int256' : numberToHex(value);\n }\n else if (value.indexOf('0x') === 0 || value.indexOf('0X') === 0) {\n return returnType ? 'bytes' : value;\n }\n else if (!isFinite(value)) {\n return returnType ? 'string' : utf8ToHex(value);\n }\n }\n return returnType ? (value < 0 ? 'int256' : 'uint256') : numberToHex(value);\n};\n/**\n * Check if string is HEX, requires a 0x in front\n *\n * @method isHexStrict\n * @param {String} hex to be checked\n * @returns {Boolean}\n */\nvar isHexStrict = function (hex) {\n return ((_.isString(hex) || _.isNumber(hex)) && /^(-)?0x[0-9a-f]*$/i.test(hex));\n};\n/**\n * Check if string is HEX\n *\n * @method isHex\n * @param {String} hex to be checked\n * @returns {Boolean}\n */\nvar isHex = function (hex) {\n return ((_.isString(hex) || _.isNumber(hex)) && /^(-0x|0x)?[0-9a-f]*$/i.test(hex));\n};\n/**\n * Returns true if given string is a valid Ethereum block header bloom.\n *\n * @method isBloom\n * @param {String} bloom encoded bloom filter\n * @return {Boolean}\n */\nvar isBloom = function (bloom) {\n return ethereumBloomFilters.isBloom(bloom);\n};\n/**\n * Returns true if the ethereum users address is part of the given bloom\n * note: false positives are possible.\n *\n * @method isUserEthereumAddressInBloom\n * @param {String} ethereumAddress encoded bloom filter\n * @param {String} bloom ethereum addresss\n * @return {Boolean}\n */\nvar isUserEthereumAddressInBloom = function (bloom, ethereumAddress) {\n return ethereumBloomFilters.isUserEthereumAddressInBloom(bloom, ethereumAddress);\n};\n/**\n * Returns true if the contract address is part of the given bloom\n * note: false positives are possible.\n *\n * @method isUserEthereumAddressInBloom\n * @param {String} bloom encoded bloom filter\n * @param {String} contractAddress contract addresss\n * @return {Boolean}\n */\nvar isContractAddressInBloom = function (bloom, contractAddress) {\n return ethereumBloomFilters.isContractAddressInBloom(bloom, contractAddress);\n};\n/**\n * Returns true if given string is a valid log topic.\n *\n * @method isTopic\n * @param {String} topic encoded topic\n * @return {Boolean}\n */\nvar isTopic = function (topic) {\n return ethereumBloomFilters.isTopic(topic);\n};\n/**\n * Returns true if the topic is part of the given bloom\n * note: false positives are possible.\n *\n * @method isTopicInBloom\n * @param {String} bloom encoded bloom filter\n * @param {String} topic encoded topic\n * @return {Boolean}\n */\nvar isTopicInBloom = function (bloom, topic) {\n return ethereumBloomFilters.isTopicInBloom(bloom, topic);\n};\n/**\n * Returns true if the value is part of the given bloom\n * note: false positives are possible.\n *\n * @method isInBloom\n * @param {String} bloom encoded bloom filter\n * @param {String | Uint8Array} topic encoded value\n * @return {Boolean}\n */\nvar isInBloom = function (bloom, topic) {\n return ethereumBloomFilters.isInBloom(bloom, topic);\n};\n/**\n * Hashes values to a sha3 hash using keccak 256\n *\n * To hash a HEX string the hex must have 0x in front.\n *\n * @method sha3\n * @return {String} the sha3 string\n */\nvar SHA3_NULL_S = '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470';\nvar sha3 = function (value) {\n if (isBN(value)) {\n value = value.toString();\n }\n if (isHexStrict(value) && /^0x/i.test((value).toString())) {\n value = hexToBytes(value);\n }\n var returnValue = Hash.keccak256(value); // jshint ignore:line\n if (returnValue === SHA3_NULL_S) {\n return null;\n }\n else {\n return returnValue;\n }\n};\n// expose the under the hood keccak256\nsha3._Hash = Hash;\n/**\n * @method sha3Raw\n *\n * @param value\n *\n * @returns {string}\n */\nvar sha3Raw = function (value) {\n value = sha3(value);\n if (value === null) {\n return SHA3_NULL_S;\n }\n return value;\n};\nmodule.exports = {\n BN: BN,\n isBN: isBN,\n isBigNumber: isBigNumber,\n toBN: toBN,\n isAddress: isAddress,\n isBloom: isBloom,\n isUserEthereumAddressInBloom: isUserEthereumAddressInBloom,\n isContractAddressInBloom: isContractAddressInBloom,\n isTopic: isTopic,\n isTopicInBloom: isTopicInBloom,\n isInBloom: isInBloom,\n checkAddressChecksum: checkAddressChecksum,\n utf8ToHex: utf8ToHex,\n hexToUtf8: hexToUtf8,\n hexToNumber: hexToNumber,\n hexToNumberString: hexToNumberString,\n numberToHex: numberToHex,\n toHex: toHex,\n hexToBytes: hexToBytes,\n bytesToHex: bytesToHex,\n isHex: isHex,\n isHexStrict: isHexStrict,\n leftPad: leftPad,\n rightPad: rightPad,\n toTwosComplement: toTwosComplement,\n sha3: sha3,\n sha3Raw: sha3Raw\n};\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file iban.js\n *\n * Details: https://github.com/ethereum/wiki/wiki/ICAP:-Inter-exchange-Client-Address-Protocol\n *\n * @author Marek Kotewicz \n * @date 2015\n */\n\"use strict\";\nvar utils = require('web3-utils');\nvar BigNumber = require('bn.js');\nvar leftPad = function (string, bytes) {\n var result = string;\n while (result.length < bytes * 2) {\n result = '0' + result;\n }\n return result;\n};\n/**\n * Prepare an IBAN for mod 97 computation by moving the first 4 chars to the end and transforming the letters to\n * numbers (A = 10, B = 11, ..., Z = 35), as specified in ISO13616.\n *\n * @method iso13616Prepare\n * @param {String} iban the IBAN\n * @returns {String} the prepared IBAN\n */\nvar iso13616Prepare = function (iban) {\n var A = 'A'.charCodeAt(0);\n var Z = 'Z'.charCodeAt(0);\n iban = iban.toUpperCase();\n iban = iban.substr(4) + iban.substr(0, 4);\n return iban.split('').map(function (n) {\n var code = n.charCodeAt(0);\n if (code >= A && code <= Z) {\n // A = 10, B = 11, ... Z = 35\n return code - A + 10;\n }\n else {\n return n;\n }\n }).join('');\n};\n/**\n * Calculates the MOD 97 10 of the passed IBAN as specified in ISO7064.\n *\n * @method mod9710\n * @param {String} iban\n * @returns {Number}\n */\nvar mod9710 = function (iban) {\n var remainder = iban, block;\n while (remainder.length > 2) {\n block = remainder.slice(0, 9);\n remainder = parseInt(block, 10) % 97 + remainder.slice(block.length);\n }\n return parseInt(remainder, 10) % 97;\n};\n/**\n * This prototype should be used to create iban object from iban correct string\n *\n * @param {String} iban\n */\nvar Iban = function Iban(iban) {\n this._iban = iban;\n};\n/**\n * This method should be used to create an ethereum address from a direct iban address\n *\n * @method toAddress\n * @param {String} iban address\n * @return {String} the ethereum address\n */\nIban.toAddress = function (ib) {\n ib = new Iban(ib);\n if (!ib.isDirect()) {\n throw new Error('IBAN is indirect and can\\'t be converted');\n }\n return ib.toAddress();\n};\n/**\n * This method should be used to create iban address from an ethereum address\n *\n * @method toIban\n * @param {String} address\n * @return {String} the IBAN address\n */\nIban.toIban = function (address) {\n return Iban.fromAddress(address).toString();\n};\n/**\n * This method should be used to create iban object from an ethereum address\n *\n * @method fromAddress\n * @param {String} address\n * @return {Iban} the IBAN object\n */\nIban.fromAddress = function (address) {\n if (!utils.isAddress(address)) {\n throw new Error('Provided address is not a valid address: ' + address);\n }\n address = address.replace('0x', '').replace('0X', '');\n var asBn = new BigNumber(address, 16);\n var base36 = asBn.toString(36);\n var padded = leftPad(base36, 15);\n return Iban.fromBban(padded.toUpperCase());\n};\n/**\n * Convert the passed BBAN to an IBAN for this country specification.\n * Please note that \"generation of the IBAN shall be the exclusive responsibility of the bank/branch servicing the account\".\n * This method implements the preferred algorithm described in http://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits\n *\n * @method fromBban\n * @param {String} bban the BBAN to convert to IBAN\n * @returns {Iban} the IBAN object\n */\nIban.fromBban = function (bban) {\n var countryCode = 'XE';\n var remainder = mod9710(iso13616Prepare(countryCode + '00' + bban));\n var checkDigit = ('0' + (98 - remainder)).slice(-2);\n return new Iban(countryCode + checkDigit + bban);\n};\n/**\n * Should be used to create IBAN object for given institution and identifier\n *\n * @method createIndirect\n * @param {Object} options, required options are \"institution\" and \"identifier\"\n * @return {Iban} the IBAN object\n */\nIban.createIndirect = function (options) {\n return Iban.fromBban('ETH' + options.institution + options.identifier);\n};\n/**\n * This method should be used to check if given string is valid iban object\n *\n * @method isValid\n * @param {String} iban string\n * @return {Boolean} true if it is valid IBAN\n */\nIban.isValid = function (iban) {\n var i = new Iban(iban);\n return i.isValid();\n};\n/**\n * Should be called to check if iban is correct\n *\n * @method isValid\n * @returns {Boolean} true if it is, otherwise false\n */\nIban.prototype.isValid = function () {\n return /^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban) &&\n mod9710(iso13616Prepare(this._iban)) === 1;\n};\n/**\n * Should be called to check if iban number is direct\n *\n * @method isDirect\n * @returns {Boolean} true if it is, otherwise false\n */\nIban.prototype.isDirect = function () {\n return this._iban.length === 34 || this._iban.length === 35;\n};\n/**\n * Should be called to check if iban number if indirect\n *\n * @method isIndirect\n * @returns {Boolean} true if it is, otherwise false\n */\nIban.prototype.isIndirect = function () {\n return this._iban.length === 20;\n};\n/**\n * Should be called to get iban checksum\n * Uses the mod-97-10 checksumming protocol (ISO/IEC 7064:2003)\n *\n * @method checksum\n * @returns {String} checksum\n */\nIban.prototype.checksum = function () {\n return this._iban.substr(2, 2);\n};\n/**\n * Should be called to get institution identifier\n * eg. XREG\n *\n * @method institution\n * @returns {String} institution identifier\n */\nIban.prototype.institution = function () {\n return this.isIndirect() ? this._iban.substr(7, 4) : '';\n};\n/**\n * Should be called to get client identifier within institution\n * eg. GAVOFYORK\n *\n * @method client\n * @returns {String} client identifier\n */\nIban.prototype.client = function () {\n return this.isIndirect() ? this._iban.substr(11) : '';\n};\n/**\n * Should be called to get client direct address\n *\n * @method toAddress\n * @returns {String} ethereum address\n */\nIban.prototype.toAddress = function () {\n if (this.isDirect()) {\n var base36 = this._iban.substr(4);\n var asBn = new BigNumber(base36, 36);\n return utils.toChecksumAddress(asBn.toString(16, 20));\n }\n return '';\n};\nIban.prototype.toString = function () {\n return this._iban;\n};\nmodule.exports = Iban;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/** @file jsonrpc.js\n * @authors:\n * Fabian Vogelsteller \n * Marek Kotewicz \n * Aaron Kumavis \n * @date 2015\n */\n\"use strict\";\n// Initialize Jsonrpc as a simple object with utility functions.\nvar Jsonrpc = {\n messageId: 0\n};\n/**\n * Should be called to valid json create payload object\n *\n * @method toPayload\n * @param {Function} method of jsonrpc call, required\n * @param {Array} params, an array of method params, optional\n * @returns {Object} valid jsonrpc payload object\n */\nJsonrpc.toPayload = function (method, params) {\n if (!method) {\n throw new Error('JSONRPC method should be specified for params: \"' + JSON.stringify(params) + '\"!');\n }\n // advance message ID\n Jsonrpc.messageId++;\n return {\n jsonrpc: '2.0',\n id: Jsonrpc.messageId,\n method: method,\n params: params || []\n };\n};\n/**\n * Should be called to check if jsonrpc response is valid\n *\n * @method isValidResponse\n * @param {Object}\n * @returns {Boolean} true if response is valid, otherwise false\n */\nJsonrpc.isValidResponse = function (response) {\n return Array.isArray(response) ? response.every(validateSingleMessage) : validateSingleMessage(response);\n function validateSingleMessage(message) {\n return !!message &&\n !message.error &&\n message.jsonrpc === '2.0' &&\n (typeof message.id === 'number' || typeof message.id === 'string') &&\n message.result !== undefined; // only undefined is not valid json object\n }\n};\n/**\n * Should be called to create batch payload object\n *\n * @method toBatchPayload\n * @param {Array} messages, an array of objects with method (required) and params (optional) fields\n * @returns {Array} batch payload\n */\nJsonrpc.toBatchPayload = function (messages) {\n return messages.map(function (message) {\n return Jsonrpc.toPayload(message.method, message.params);\n });\n};\nmodule.exports = Jsonrpc;\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","\"use strict\";\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardles.\n *\n */\nimport { BN } from \"bn.js\";\nimport { hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst _constructorGuard = {};\nconst MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return (value != null) && (BigNumber.isBigNumber(value) ||\n (typeof (value) === \"number\" && (value % 1) === 0) ||\n (typeof (value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof (value) === \"bigint\") ||\n isBytes(value));\n}\nexport class BigNumber {\n constructor(constructorGuard, hex) {\n logger.checkNew(new.target, BigNumber);\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division by zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"cannot modulo negative values\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"cannot raise to negative values\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"cannot 'and' negative values\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"cannot 'or' negative values\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"cannot 'xor' negative values\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"cannot mask negative values\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"cannot shift negative values\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"cannot shift negative values\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return (this._hex[0] === \"-\");\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n }\n catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toString() {\n // Lots of people expect this, which we do not support, so check\n if (arguments.length !== 0) {\n logger.throwError(\"bigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n if (typeof (value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof (value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof (anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n // Hexable interface (takes piority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof (hex) === \"string\") {\n return BigNumber.from(hex);\n }\n }\n else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof (hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n}\n// Normalize the hex string\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof (value) !== \"string\") {\n return toHex(value.toString(16));\n }\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n // Cannot have mulitple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n // Call toHex on the positive component\n value = toHex(value);\n // Do not allow \"-0x00\"\n if (value === \"0x00\") {\n return value;\n }\n // Negate the value\n return \"-\" + value;\n }\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n // Normalize zero\n if (value === \"0x\") {\n return \"0x00\";\n }\n // Make the string even length\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value != null) {\n params.value = value;\n }\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n//# sourceMappingURL=bignumber.js.map","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/*\n This file is part of web3.js.\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file config.js\n *\n * @author Samuel Furter \n * @date 2017\n */\n\"use strict\";\n/**\n * Source: https://docs.ens.domains/ens-deployments\n *\n * @type {{addresses: {main: string, rinkeby: string, goerli: string, ropsten: string}}}\n */\nvar config = {\n addresses: {\n main: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n ropsten: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n rinkeby: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n goerli: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"\n },\n // These ids obtained at ensdomains docs:\n // https://docs.ens.domains/contract-developer-guide/writing-a-resolver\n interfaceIds: {\n addr: \"0x3b3b57de\",\n setAddr: \"0x3b3b57de\",\n pubkey: \"0xc8690233\",\n setPubkey: \"0xc8690233\",\n contenthash: \"0xbc1c58d1\",\n setContenthash: \"0xbc1c58d1\",\n content: \"0xd8389dc5\",\n setContent: \"0xd8389dc5\"\n }\n};\nmodule.exports = config;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file contract.js\n *\n * To initialize a contract use:\n *\n * var Contract = require('web3-eth-contract');\n * Contract.setProvider('ws://localhost:8546');\n * var contract = new Contract(abi, address, ...);\n *\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar _ = require('underscore');\nvar core = require('web3-core');\nvar Method = require('web3-core-method');\nvar utils = require('web3-utils');\nvar Subscription = require('web3-core-subscriptions').subscription;\nvar formatters = require('web3-core-helpers').formatters;\nvar errors = require('web3-core-helpers').errors;\nvar promiEvent = require('web3-core-promievent');\nvar abi = require('web3-eth-abi');\n/**\n * Should be called to create new contract instance\n *\n * @method Contract\n * @constructor\n * @param {Array} jsonInterface\n * @param {String} address\n * @param {Object} options\n */\nvar Contract = function Contract(jsonInterface, address, options) {\n var _this = this, args = Array.prototype.slice.call(arguments);\n if (!(this instanceof Contract)) {\n throw new Error('Please use the \"new\" keyword to instantiate a web3.eth.Contract() object!');\n }\n this.setProvider = function () {\n core.packageInit(_this, arguments);\n _this.clearSubscriptions = _this._requestManager.clearSubscriptions;\n };\n // sets _requestmanager\n core.packageInit(this, [this.constructor]);\n this.clearSubscriptions = this._requestManager.clearSubscriptions;\n if (!jsonInterface || !(Array.isArray(jsonInterface))) {\n throw errors.ContractMissingABIError();\n }\n // create the options object\n this.options = {};\n var lastArg = args[args.length - 1];\n if (_.isObject(lastArg) && !_.isArray(lastArg)) {\n options = lastArg;\n this.options = _.extend(this.options, this._getOrSetDefaultOptions(options));\n if (_.isObject(address)) {\n address = null;\n }\n }\n // set address\n Object.defineProperty(this.options, 'address', {\n set: function (value) {\n if (value) {\n _this._address = utils.toChecksumAddress(formatters.inputAddressFormatter(value));\n }\n },\n get: function () {\n return _this._address;\n },\n enumerable: true\n });\n // add method and event signatures, when the jsonInterface gets set\n Object.defineProperty(this.options, 'jsonInterface', {\n set: function (value) {\n _this.methods = {};\n _this.events = {};\n _this._jsonInterface = value.map(function (method) {\n var func, funcName;\n // make constant and payable backwards compatible\n method.constant = (method.stateMutability === \"view\" || method.stateMutability === \"pure\" || method.constant);\n method.payable = (method.stateMutability === \"payable\" || method.payable);\n if (method.name) {\n funcName = utils._jsonInterfaceMethodToString(method);\n }\n // function\n if (method.type === 'function') {\n method.signature = abi.encodeFunctionSignature(funcName);\n func = _this._createTxObject.bind({\n method: method,\n parent: _this\n });\n // add method only if not one already exists\n if (!_this.methods[method.name]) {\n _this.methods[method.name] = func;\n }\n else {\n var cascadeFunc = _this._createTxObject.bind({\n method: method,\n parent: _this,\n nextMethod: _this.methods[method.name]\n });\n _this.methods[method.name] = cascadeFunc;\n }\n // definitely add the method based on its signature\n _this.methods[method.signature] = func;\n // add method by name\n _this.methods[funcName] = func;\n // event\n }\n else if (method.type === 'event') {\n method.signature = abi.encodeEventSignature(funcName);\n var event = _this._on.bind(_this, method.signature);\n // add method only if not already exists\n if (!_this.events[method.name] || _this.events[method.name].name === 'bound ')\n _this.events[method.name] = event;\n // definitely add the method based on its signature\n _this.events[method.signature] = event;\n // add event by name\n _this.events[funcName] = event;\n }\n return method;\n });\n // add allEvents\n _this.events.allEvents = _this._on.bind(_this, 'allevents');\n return _this._jsonInterface;\n },\n get: function () {\n return _this._jsonInterface;\n },\n enumerable: true\n });\n // get default account from the Class\n var defaultAccount = this.constructor.defaultAccount;\n var defaultBlock = this.constructor.defaultBlock || 'latest';\n Object.defineProperty(this, 'handleRevert', {\n get: function () {\n if (_this.options.handleRevert === false || _this.options.handleRevert === true) {\n return _this.options.handleRevert;\n }\n return this.constructor.handleRevert;\n },\n set: function (val) {\n _this.options.handleRevert = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultCommon', {\n get: function () {\n return _this.options.common || this.constructor.defaultCommon;\n },\n set: function (val) {\n _this.options.common = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultHardfork', {\n get: function () {\n return _this.options.hardfork || this.constructor.defaultHardfork;\n },\n set: function (val) {\n _this.options.hardfork = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultChain', {\n get: function () {\n return _this.options.chain || this.constructor.defaultChain;\n },\n set: function (val) {\n _this.options.chain = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'transactionPollingTimeout', {\n get: function () {\n if (_this.options.transactionPollingTimeout === 0) {\n return _this.options.transactionPollingTimeout;\n }\n return _this.options.transactionPollingTimeout || this.constructor.transactionPollingTimeout;\n },\n set: function (val) {\n _this.options.transactionPollingTimeout = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'transactionConfirmationBlocks', {\n get: function () {\n if (_this.options.transactionConfirmationBlocks === 0) {\n return _this.options.transactionConfirmationBlocks;\n }\n return _this.options.transactionConfirmationBlocks || this.constructor.transactionConfirmationBlocks;\n },\n set: function (val) {\n _this.options.transactionConfirmationBlocks = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'transactionBlockTimeout', {\n get: function () {\n if (_this.options.transactionBlockTimeout === 0) {\n return _this.options.transactionBlockTimeout;\n }\n return _this.options.transactionBlockTimeout || this.constructor.transactionBlockTimeout;\n },\n set: function (val) {\n _this.options.transactionBlockTimeout = val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultAccount', {\n get: function () {\n return defaultAccount;\n },\n set: function (val) {\n if (val) {\n defaultAccount = utils.toChecksumAddress(formatters.inputAddressFormatter(val));\n }\n return val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultBlock', {\n get: function () {\n return defaultBlock;\n },\n set: function (val) {\n defaultBlock = val;\n return val;\n },\n enumerable: true\n });\n // properties\n this.methods = {};\n this.events = {};\n this._address = null;\n this._jsonInterface = [];\n // set getter/setter properties\n this.options.address = address;\n this.options.jsonInterface = jsonInterface;\n};\n/**\n * Sets the new provider, creates a new requestManager, registers the \"data\" listener on the provider and sets the\n * accounts module for the Contract class.\n *\n * @method setProvider\n *\n * @param {string|provider} provider\n * @param {Accounts} accounts\n *\n * @returns void\n */\nContract.setProvider = function (provider, accounts) {\n // Contract.currentProvider = provider;\n core.packageInit(this, [provider]);\n this._ethAccounts = accounts;\n};\n/**\n * Get the callback and modify the array if necessary\n *\n * @method _getCallback\n * @param {Array} args\n * @return {Function} the callback\n */\nContract.prototype._getCallback = function getCallback(args) {\n if (args && _.isFunction(args[args.length - 1])) {\n return args.pop(); // modify the args array!\n }\n};\n/**\n * Checks that no listener with name \"newListener\" or \"removeListener\" is added.\n *\n * @method _checkListener\n * @param {String} type\n * @param {String} event\n * @return {Object} the contract instance\n */\nContract.prototype._checkListener = function (type, event) {\n if (event === type) {\n throw errors.ContractReservedEventError(type);\n }\n};\n/**\n * Use default values, if options are not available\n *\n * @method _getOrSetDefaultOptions\n * @param {Object} options the options gived by the user\n * @return {Object} the options with gaps filled by defaults\n */\nContract.prototype._getOrSetDefaultOptions = function getOrSetDefaultOptions(options) {\n var gasPrice = options.gasPrice ? String(options.gasPrice) : null;\n var from = options.from ? utils.toChecksumAddress(formatters.inputAddressFormatter(options.from)) : null;\n options.data = options.data || this.options.data;\n options.from = from || this.options.from;\n options.gasPrice = gasPrice || this.options.gasPrice;\n options.gas = options.gas || options.gasLimit || this.options.gas;\n // TODO replace with only gasLimit?\n delete options.gasLimit;\n return options;\n};\n/**\n * Should be used to encode indexed params and options to one final object\n *\n * @method _encodeEventABI\n * @param {Object} event\n * @param {Object} options\n * @return {Object} everything combined together and encoded\n */\nContract.prototype._encodeEventABI = function (event, options) {\n options = options || {};\n var filter = options.filter || {}, result = {};\n ['fromBlock', 'toBlock'].filter(function (f) {\n return options[f] !== undefined;\n }).forEach(function (f) {\n result[f] = formatters.inputBlockNumberFormatter(options[f]);\n });\n // use given topics\n if (_.isArray(options.topics)) {\n result.topics = options.topics;\n // create topics based on filter\n }\n else {\n result.topics = [];\n // add event signature\n if (event && !event.anonymous && event.name !== 'ALLEVENTS') {\n result.topics.push(event.signature);\n }\n // add event topics (indexed arguments)\n if (event.name !== 'ALLEVENTS') {\n var indexedTopics = event.inputs.filter(function (i) {\n return i.indexed === true;\n }).map(function (i) {\n var value = filter[i.name];\n if (!value) {\n return null;\n }\n // TODO: https://github.com/ethereum/web3.js/issues/344\n // TODO: deal properly with components\n if (_.isArray(value)) {\n return value.map(function (v) {\n return abi.encodeParameter(i.type, v);\n });\n }\n return abi.encodeParameter(i.type, value);\n });\n result.topics = result.topics.concat(indexedTopics);\n }\n if (!result.topics.length)\n delete result.topics;\n }\n if (this.options.address) {\n result.address = this.options.address.toLowerCase();\n }\n return result;\n};\n/**\n * Should be used to decode indexed params and options\n *\n * @method _decodeEventABI\n * @param {Object} data\n * @return {Object} result object with decoded indexed && not indexed params\n */\nContract.prototype._decodeEventABI = function (data) {\n var event = this;\n data.data = data.data || '';\n data.topics = data.topics || [];\n var result = formatters.outputLogFormatter(data);\n // if allEvents get the right event\n if (event.name === 'ALLEVENTS') {\n event = event.jsonInterface.find(function (intf) {\n return (intf.signature === data.topics[0]);\n }) || { anonymous: true };\n }\n // create empty inputs if none are present (e.g. anonymous events on allEvents)\n event.inputs = event.inputs || [];\n // Handle case where an event signature shadows the current ABI with non-identical\n // arg indexing. If # of topics doesn't match, event is anon.\n if (!event.anonymous) {\n let indexedInputs = 0;\n event.inputs.forEach(input => input.indexed ? indexedInputs++ : null);\n if (indexedInputs > 0 && (data.topics.length !== indexedInputs + 1)) {\n event = {\n anonymous: true,\n inputs: []\n };\n }\n }\n var argTopics = event.anonymous ? data.topics : data.topics.slice(1);\n result.returnValues = abi.decodeLog(event.inputs, data.data, argTopics);\n delete result.returnValues.__length__;\n // add name\n result.event = event.name;\n // add signature\n result.signature = (event.anonymous || !data.topics[0]) ? null : data.topics[0];\n // move the data and topics to \"raw\"\n result.raw = {\n data: result.data,\n topics: result.topics\n };\n delete result.data;\n delete result.topics;\n return result;\n};\n/**\n * Encodes an ABI for a method, including signature or the method.\n * Or when constructor encodes only the constructor parameters.\n *\n * @method _encodeMethodABI\n * @param {Mixed} args the arguments to encode\n * @param {String} the encoded ABI\n */\nContract.prototype._encodeMethodABI = function _encodeMethodABI() {\n var methodSignature = this._method.signature, args = this.arguments || [];\n var signature = false, paramsABI = this._parent.options.jsonInterface.filter(function (json) {\n return ((methodSignature === 'constructor' && json.type === methodSignature) ||\n ((json.signature === methodSignature || json.signature === methodSignature.replace('0x', '') || json.name === methodSignature) && json.type === 'function'));\n }).map(function (json) {\n var inputLength = (_.isArray(json.inputs)) ? json.inputs.length : 0;\n if (inputLength !== args.length) {\n throw new Error('The number of arguments is not matching the methods required number. You need to pass ' + inputLength + ' arguments.');\n }\n if (json.type === 'function') {\n signature = json.signature;\n }\n return _.isArray(json.inputs) ? json.inputs : [];\n }).map(function (inputs) {\n return abi.encodeParameters(inputs, args).replace('0x', '');\n })[0] || '';\n // return constructor\n if (methodSignature === 'constructor') {\n if (!this._deployData)\n throw new Error('The contract has no contract data option set. This is necessary to append the constructor parameters.');\n if (!this._deployData.startsWith('0x')) {\n this._deployData = '0x' + this._deployData;\n }\n return this._deployData + paramsABI;\n }\n // return method\n var returnValue = (signature) ? signature + paramsABI : paramsABI;\n if (!returnValue) {\n throw new Error('Couldn\\'t find a matching contract method named \"' + this._method.name + '\".');\n }\n return returnValue;\n};\n/**\n * Decode method return values\n *\n * @method _decodeMethodReturn\n * @param {Array} outputs\n * @param {String} returnValues\n * @return {Object} decoded output return values\n */\nContract.prototype._decodeMethodReturn = function (outputs, returnValues) {\n if (!returnValues) {\n return null;\n }\n returnValues = returnValues.length >= 2 ? returnValues.slice(2) : returnValues;\n var result = abi.decodeParameters(outputs, returnValues);\n if (result.__length__ === 1) {\n return result[0];\n }\n delete result.__length__;\n return result;\n};\n/**\n * Deploys a contract and fire events based on its state: transactionHash, receipt\n *\n * All event listeners will be removed, once the last possible event is fired (\"error\", or \"receipt\")\n *\n * @method deploy\n * @param {Object} options\n * @param {Function} callback\n * @return {Object} EventEmitter possible events are \"error\", \"transactionHash\" and \"receipt\"\n */\nContract.prototype.deploy = function (options, callback) {\n options = options || {};\n options.arguments = options.arguments || [];\n options = this._getOrSetDefaultOptions(options);\n // throw error, if no \"data\" is specified\n if (!options.data) {\n if (typeof callback === 'function') {\n return callback(errors.ContractMissingDeployDataError());\n }\n throw errors.ContractMissingDeployDataError();\n }\n var constructor = _.find(this.options.jsonInterface, function (method) {\n return (method.type === 'constructor');\n }) || {};\n constructor.signature = 'constructor';\n return this._createTxObject.apply({\n method: constructor,\n parent: this,\n deployData: options.data,\n _ethAccounts: this.constructor._ethAccounts\n }, options.arguments);\n};\n/**\n * Gets the event signature and outputFormatters\n *\n * @method _generateEventOptions\n * @param {Object} event\n * @param {Object} options\n * @param {Function} callback\n * @return {Object} the event options object\n */\nContract.prototype._generateEventOptions = function () {\n var args = Array.prototype.slice.call(arguments);\n // get the callback\n var callback = this._getCallback(args);\n // get the options\n var options = (_.isObject(args[args.length - 1])) ? args.pop() : {};\n var eventName = (_.isString(args[0])) ? args[0] : 'allevents';\n var event = (eventName.toLowerCase() === 'allevents') ? {\n name: 'ALLEVENTS',\n jsonInterface: this.options.jsonInterface\n } : this.options.jsonInterface.find(function (json) {\n return (json.type === 'event' && (json.name === eventName || json.signature === '0x' + eventName.replace('0x', '')));\n });\n if (!event) {\n throw errors.ContractEventDoesNotExistError(eventName);\n }\n if (!utils.isAddress(this.options.address)) {\n throw errors.ContractNoAddressDefinedError();\n }\n return {\n params: this._encodeEventABI(event, options),\n event: event,\n callback: callback\n };\n};\n/**\n * Adds event listeners and creates a subscription, and remove it once its fired.\n *\n * @method clone\n * @return {Object} the event subscription\n */\nContract.prototype.clone = function () {\n return new this.constructor(this.options.jsonInterface, this.options.address, this.options);\n};\n/**\n * Adds event listeners and creates a subscription, and remove it once its fired.\n *\n * @method once\n * @param {String} event\n * @param {Object} options\n * @param {Function} callback\n * @return {Object} the event subscription\n */\nContract.prototype.once = function (event, options, callback) {\n var args = Array.prototype.slice.call(arguments);\n // get the callback\n callback = this._getCallback(args);\n if (!callback) {\n throw errors.ContractOnceRequiresCallbackError();\n }\n // don't allow fromBlock\n if (options)\n delete options.fromBlock;\n // don't return as once shouldn't provide \"on\"\n this._on(event, options, function (err, res, sub) {\n sub.unsubscribe();\n if (_.isFunction(callback)) {\n callback(err, res, sub);\n }\n });\n return undefined;\n};\n/**\n * Adds event listeners and creates a subscription.\n *\n * @method _on\n *\n * @param {String} event\n * @param {Object} options\n * @param {Function} callback\n *\n * @return {Object} the event subscription\n */\nContract.prototype._on = function () {\n var subOptions = this._generateEventOptions.apply(this, arguments);\n if (subOptions.params && subOptions.params.toBlock) {\n delete subOptions.params.toBlock;\n console.warn('Invalid option: toBlock. Use getPastEvents for specific range.');\n }\n // prevent the event \"newListener\" and \"removeListener\" from being overwritten\n this._checkListener('newListener', subOptions.event.name);\n this._checkListener('removeListener', subOptions.event.name);\n // TODO check if listener already exists? and reuse subscription if options are the same.\n // create new subscription\n var subscription = new Subscription({\n subscription: {\n params: 1,\n inputFormatter: [formatters.inputLogFormatter],\n outputFormatter: this._decodeEventABI.bind(subOptions.event),\n // DUBLICATE, also in web3-eth\n subscriptionHandler: function (output) {\n if (output.removed) {\n this.emit('changed', output);\n }\n else {\n this.emit('data', output);\n }\n if (_.isFunction(this.callback)) {\n this.callback(null, output, this);\n }\n }\n },\n type: 'eth',\n requestManager: this._requestManager\n });\n subscription.subscribe('logs', subOptions.params, subOptions.callback || function () { });\n return subscription;\n};\n/**\n * Get past events from contracts\n *\n * @method getPastEvents\n * @param {String} event\n * @param {Object} options\n * @param {Function} callback\n * @return {Object} the promievent\n */\nContract.prototype.getPastEvents = function () {\n var subOptions = this._generateEventOptions.apply(this, arguments);\n var getPastLogs = new Method({\n name: 'getPastLogs',\n call: 'eth_getLogs',\n params: 1,\n inputFormatter: [formatters.inputLogFormatter],\n outputFormatter: this._decodeEventABI.bind(subOptions.event)\n });\n getPastLogs.setRequestManager(this._requestManager);\n var call = getPastLogs.buildCall();\n getPastLogs = null;\n return call(subOptions.params, subOptions.callback);\n};\n/**\n * returns the an object with call, send, estimate functions\n *\n * @method _createTxObject\n * @returns {Object} an object with functions to call the methods\n */\nContract.prototype._createTxObject = function _createTxObject() {\n var args = Array.prototype.slice.call(arguments);\n var txObject = {};\n if (this.method.type === 'function') {\n txObject.call = this.parent._executeMethod.bind(txObject, 'call');\n txObject.call.request = this.parent._executeMethod.bind(txObject, 'call', true); // to make batch requests\n }\n txObject.send = this.parent._executeMethod.bind(txObject, 'send');\n txObject.send.request = this.parent._executeMethod.bind(txObject, 'send', true); // to make batch requests\n txObject.encodeABI = this.parent._encodeMethodABI.bind(txObject);\n txObject.estimateGas = this.parent._executeMethod.bind(txObject, 'estimate');\n if (args && this.method.inputs && args.length !== this.method.inputs.length) {\n if (this.nextMethod) {\n return this.nextMethod.apply(null, args);\n }\n throw errors.InvalidNumberOfParams(args.length, this.method.inputs.length, this.method.name);\n }\n txObject.arguments = args || [];\n txObject._method = this.method;\n txObject._parent = this.parent;\n txObject._ethAccounts = this.parent.constructor._ethAccounts || this._ethAccounts;\n if (this.deployData) {\n txObject._deployData = this.deployData;\n }\n return txObject;\n};\n/**\n * Generates the options for the execute call\n *\n * @method _processExecuteArguments\n * @param {Array} args\n * @param {Promise} defer\n */\nContract.prototype._processExecuteArguments = function _processExecuteArguments(args, defer) {\n var processedArgs = {};\n processedArgs.type = args.shift();\n // get the callback\n processedArgs.callback = this._parent._getCallback(args);\n // get block number to use for call\n if (processedArgs.type === 'call' && args[args.length - 1] !== true && (_.isString(args[args.length - 1]) || isFinite(args[args.length - 1])))\n processedArgs.defaultBlock = args.pop();\n // get the options\n processedArgs.options = (_.isObject(args[args.length - 1])) ? args.pop() : {};\n // get the generateRequest argument for batch requests\n processedArgs.generateRequest = (args[args.length - 1] === true) ? args.pop() : false;\n processedArgs.options = this._parent._getOrSetDefaultOptions(processedArgs.options);\n processedArgs.options.data = this.encodeABI();\n // add contract address\n if (!this._deployData && !utils.isAddress(this._parent.options.address))\n throw errors.ContractNoAddressDefinedError();\n if (!this._deployData)\n processedArgs.options.to = this._parent.options.address;\n // return error, if no \"data\" is specified\n if (!processedArgs.options.data)\n return utils._fireError(new Error('Couldn\\'t find a matching contract method, or the number of parameters is wrong.'), defer.eventEmitter, defer.reject, processedArgs.callback);\n return processedArgs;\n};\n/**\n * Executes a call, transact or estimateGas on a contract function\n *\n * @method _executeMethod\n * @param {String} type the type this execute function should execute\n * @param {Boolean} makeRequest if true, it simply returns the request parameters, rather than executing it\n */\nContract.prototype._executeMethod = function _executeMethod() {\n var _this = this, args = this._parent._processExecuteArguments.call(this, Array.prototype.slice.call(arguments), defer), defer = promiEvent((args.type !== 'send')), ethAccounts = _this.constructor._ethAccounts || _this._ethAccounts;\n // simple return request for batch requests\n if (args.generateRequest) {\n var payload = {\n params: [formatters.inputCallFormatter.call(this._parent, args.options)],\n callback: args.callback\n };\n if (args.type === 'call') {\n payload.params.push(formatters.inputDefaultBlockNumberFormatter.call(this._parent, args.defaultBlock));\n payload.method = 'eth_call';\n payload.format = this._parent._decodeMethodReturn.bind(null, this._method.outputs);\n }\n else {\n payload.method = 'eth_sendTransaction';\n }\n return payload;\n }\n switch (args.type) {\n case 'estimate':\n var estimateGas = (new Method({\n name: 'estimateGas',\n call: 'eth_estimateGas',\n params: 1,\n inputFormatter: [formatters.inputCallFormatter],\n outputFormatter: utils.hexToNumber,\n requestManager: _this._parent._requestManager,\n accounts: ethAccounts,\n defaultAccount: _this._parent.defaultAccount,\n defaultBlock: _this._parent.defaultBlock\n })).createFunction();\n return estimateGas(args.options, args.callback);\n case 'call':\n // TODO check errors: missing \"from\" should give error on deploy and send, call ?\n var call = (new Method({\n name: 'call',\n call: 'eth_call',\n params: 2,\n inputFormatter: [formatters.inputCallFormatter, formatters.inputDefaultBlockNumberFormatter],\n // add output formatter for decoding\n outputFormatter: function (result) {\n return _this._parent._decodeMethodReturn(_this._method.outputs, result);\n },\n requestManager: _this._parent._requestManager,\n accounts: ethAccounts,\n defaultAccount: _this._parent.defaultAccount,\n defaultBlock: _this._parent.defaultBlock,\n handleRevert: _this._parent.handleRevert,\n abiCoder: abi\n })).createFunction();\n return call(args.options, args.defaultBlock, args.callback);\n case 'send':\n // return error, if no \"from\" is specified\n if (!utils.isAddress(args.options.from)) {\n return utils._fireError(errors.ContractNoFromAddressDefinedError(), defer.eventEmitter, defer.reject, args.callback);\n }\n if (_.isBoolean(this._method.payable) && !this._method.payable && args.options.value && args.options.value > 0) {\n return utils._fireError(new Error('Can not send value to non-payable contract method or constructor'), defer.eventEmitter, defer.reject, args.callback);\n }\n // make sure receipt logs are decoded\n var extraFormatters = {\n receiptFormatter: function (receipt) {\n if (_.isArray(receipt.logs)) {\n // decode logs\n var events = _.map(receipt.logs, function (log) {\n return _this._parent._decodeEventABI.call({\n name: 'ALLEVENTS',\n jsonInterface: _this._parent.options.jsonInterface\n }, log);\n });\n // make log names keys\n receipt.events = {};\n var count = 0;\n events.forEach(function (ev) {\n if (ev.event) {\n // if > 1 of the same event, don't overwrite any existing events\n if (receipt.events[ev.event]) {\n if (Array.isArray(receipt.events[ev.event])) {\n receipt.events[ev.event].push(ev);\n }\n else {\n receipt.events[ev.event] = [receipt.events[ev.event], ev];\n }\n }\n else {\n receipt.events[ev.event] = ev;\n }\n }\n else {\n receipt.events[count] = ev;\n count++;\n }\n });\n delete receipt.logs;\n }\n return receipt;\n },\n contractDeployFormatter: function (receipt) {\n var newContract = _this._parent.clone();\n newContract.options.address = receipt.contractAddress;\n return newContract;\n }\n };\n var sendTransaction = (new Method({\n name: 'sendTransaction',\n call: 'eth_sendTransaction',\n params: 1,\n inputFormatter: [formatters.inputTransactionFormatter],\n requestManager: _this._parent._requestManager,\n accounts: _this.constructor._ethAccounts || _this._ethAccounts,\n defaultAccount: _this._parent.defaultAccount,\n defaultBlock: _this._parent.defaultBlock,\n transactionBlockTimeout: _this._parent.transactionBlockTimeout,\n transactionConfirmationBlocks: _this._parent.transactionConfirmationBlocks,\n transactionPollingTimeout: _this._parent.transactionPollingTimeout,\n defaultCommon: _this._parent.defaultCommon,\n defaultChain: _this._parent.defaultChain,\n defaultHardfork: _this._parent.defaultHardfork,\n handleRevert: _this._parent.handleRevert,\n extraFormatters: extraFormatters,\n abiCoder: abi\n })).createFunction();\n return sendTransaction(args.options, args.callback);\n default:\n throw new Error('Method \"' + args.type + '\" not implemented.');\n }\n};\nmodule.exports = Contract;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file index.js\n * @author Marek Kotewicz \n * @author Fabian Vogelsteller \n * @date 2018\n */\nvar Buffer = require('buffer').Buffer;\nvar _ = require('underscore');\nvar utils = require('web3-utils');\nvar EthersAbiCoder = require('@ethersproject/abi').AbiCoder;\nvar ParamType = require('@ethersproject/abi').ParamType;\nvar ethersAbiCoder = new EthersAbiCoder(function (type, value) {\n if (type.match(/^u?int/) && !_.isArray(value) && (!_.isObject(value) || value.constructor.name !== 'BN')) {\n return value.toString();\n }\n return value;\n});\n// result method\nfunction Result() {\n}\n/**\n * ABICoder prototype should be used to encode/decode solidity params of any type\n */\nvar ABICoder = function () {\n};\n/**\n * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types.\n *\n * @method encodeFunctionSignature\n * @param {String|Object} functionName\n * @return {String} encoded function name\n */\nABICoder.prototype.encodeFunctionSignature = function (functionName) {\n if (_.isObject(functionName)) {\n functionName = utils._jsonInterfaceMethodToString(functionName);\n }\n return utils.sha3(functionName).slice(0, 10);\n};\n/**\n * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types.\n *\n * @method encodeEventSignature\n * @param {String|Object} functionName\n * @return {String} encoded function name\n */\nABICoder.prototype.encodeEventSignature = function (functionName) {\n if (_.isObject(functionName)) {\n functionName = utils._jsonInterfaceMethodToString(functionName);\n }\n return utils.sha3(functionName);\n};\n/**\n * Should be used to encode plain param\n *\n * @method encodeParameter\n *\n * @param {String|Object} type\n * @param {any} param\n *\n * @return {String} encoded plain param\n */\nABICoder.prototype.encodeParameter = function (type, param) {\n return this.encodeParameters([type], [param]);\n};\n/**\n * Should be used to encode list of params\n *\n * @method encodeParameters\n *\n * @param {Array} types\n * @param {Array} params\n *\n * @return {String} encoded list of params\n */\nABICoder.prototype.encodeParameters = function (types, params) {\n var self = this;\n types = self.mapTypes(types);\n params = params.map(function (param, index) {\n let type = types[index];\n if (typeof type === 'object' && type.type) {\n // We may get a named type of shape {name, type}\n type = type.type;\n }\n param = self.formatParam(type, param);\n // Format params for tuples\n if (typeof type === 'string' && type.includes('tuple')) {\n const coder = ethersAbiCoder._getCoder(ParamType.from(type));\n const modifyParams = (coder, param) => {\n if (coder.name === 'array') {\n return param.map(p => modifyParams(ethersAbiCoder._getCoder(ParamType.from(coder.type.replace('[]', ''))), p));\n }\n coder.coders.forEach((c, i) => {\n if (c.name === 'tuple') {\n modifyParams(c, param[i]);\n }\n else {\n param[i] = self.formatParam(c.name, param[i]);\n }\n });\n };\n modifyParams(coder, param);\n }\n return param;\n });\n return ethersAbiCoder.encode(types, params);\n};\n/**\n * Map types if simplified format is used\n *\n * @method mapTypes\n * @param {Array} types\n * @return {Array}\n */\nABICoder.prototype.mapTypes = function (types) {\n var self = this;\n var mappedTypes = [];\n types.forEach(function (type) {\n // Remap `function` type params to bytes24 since Ethers does not\n // recognize former type. Solidity docs say `Function` is a bytes24\n // encoding the contract address followed by the function selector hash.\n if (typeof type === 'object' && type.type === 'function') {\n type.type = \"bytes24\";\n }\n if (self.isSimplifiedStructFormat(type)) {\n var structName = Object.keys(type)[0];\n mappedTypes.push(Object.assign(self.mapStructNameAndType(structName), {\n components: self.mapStructToCoderFormat(type[structName])\n }));\n return;\n }\n mappedTypes.push(type);\n });\n return mappedTypes;\n};\n/**\n * Check if type is simplified struct format\n *\n * @method isSimplifiedStructFormat\n * @param {string | Object} type\n * @returns {boolean}\n */\nABICoder.prototype.isSimplifiedStructFormat = function (type) {\n return typeof type === 'object' && typeof type.components === 'undefined' && typeof type.name === 'undefined';\n};\n/**\n * Maps the correct tuple type and name when the simplified format in encode/decodeParameter is used\n *\n * @method mapStructNameAndType\n * @param {string} structName\n * @return {{type: string, name: *}}\n */\nABICoder.prototype.mapStructNameAndType = function (structName) {\n var type = 'tuple';\n if (structName.indexOf('[]') > -1) {\n type = 'tuple[]';\n structName = structName.slice(0, -2);\n }\n return { type: type, name: structName };\n};\n/**\n * Maps the simplified format in to the expected format of the ABICoder\n *\n * @method mapStructToCoderFormat\n * @param {Object} struct\n * @return {Array}\n */\nABICoder.prototype.mapStructToCoderFormat = function (struct) {\n var self = this;\n var components = [];\n Object.keys(struct).forEach(function (key) {\n if (typeof struct[key] === 'object') {\n components.push(Object.assign(self.mapStructNameAndType(key), {\n components: self.mapStructToCoderFormat(struct[key])\n }));\n return;\n }\n components.push({\n name: key,\n type: struct[key]\n });\n });\n return components;\n};\n/**\n * Handle some formatting of params for backwards compatability with Ethers V4\n *\n * @method formatParam\n * @param {String} - type\n * @param {any} - param\n * @return {any} - The formatted param\n */\nABICoder.prototype.formatParam = function (type, param) {\n const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\n const paramTypeBytesArray = new RegExp(/^bytes([0-9]*)\\[\\]$/);\n const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\n const paramTypeNumberArray = new RegExp(/^(u?int)([0-9]*)\\[\\]$/);\n // Format BN to string\n if (utils.isBN(param) || utils.isBigNumber(param)) {\n return param.toString(10);\n }\n if (type.match(paramTypeBytesArray) || type.match(paramTypeNumberArray)) {\n return param.map(p => this.formatParam(type.replace('[]', ''), p));\n }\n // Format correct width for u?int[0-9]*\n let match = type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size / 8 < param.length) {\n // pad to correct bit width\n param = utils.leftPad(param, size);\n }\n }\n // Format correct length for bytes[0-9]+\n match = type.match(paramTypeBytes);\n if (match) {\n if (Buffer.isBuffer(param)) {\n param = utils.toHex(param);\n }\n // format to correct length\n let size = parseInt(match[1]);\n if (size) {\n let maxSize = size * 2;\n if (param.substring(0, 2) === '0x') {\n maxSize += 2;\n }\n if (param.length < maxSize) {\n // pad to correct length\n param = utils.rightPad(param, size * 2);\n }\n }\n // format odd-length bytes to even-length\n if (param.length % 2 === 1) {\n param = '0x0' + param.substring(2);\n }\n }\n return param;\n};\n/**\n * Encodes a function call from its json interface and parameters.\n *\n * @method encodeFunctionCall\n * @param {Array} jsonInterface\n * @param {Array} params\n * @return {String} The encoded ABI for this function call\n */\nABICoder.prototype.encodeFunctionCall = function (jsonInterface, params) {\n return this.encodeFunctionSignature(jsonInterface) + this.encodeParameters(jsonInterface.inputs, params).replace('0x', '');\n};\n/**\n * Should be used to decode bytes to plain param\n *\n * @method decodeParameter\n * @param {String} type\n * @param {String} bytes\n * @return {Object} plain param\n */\nABICoder.prototype.decodeParameter = function (type, bytes) {\n return this.decodeParameters([type], bytes)[0];\n};\n/**\n * Should be used to decode list of params\n *\n * @method decodeParameter\n * @param {Array} outputs\n * @param {String} bytes\n * @return {Array} array of plain params\n */\nABICoder.prototype.decodeParameters = function (outputs, bytes) {\n return this.decodeParametersWith(outputs, bytes, false);\n};\n/**\n * Should be used to decode list of params\n *\n * @method decodeParameter\n * @param {Array} outputs\n * @param {String} bytes\n * @param {Boolean} loose\n * @return {Array} array of plain params\n */\nABICoder.prototype.decodeParametersWith = function (outputs, bytes, loose) {\n if (outputs.length > 0 && (!bytes || bytes === '0x' || bytes === '0X')) {\n throw new Error('Returned values aren\\'t valid, did it run Out of Gas? ' +\n 'You might also see this error if you are not using the ' +\n 'correct ABI for the contract you are retrieving data from, ' +\n 'requesting data from a block number that does not exist, ' +\n 'or querying a node which is not fully synced.');\n }\n var res = ethersAbiCoder.decode(this.mapTypes(outputs), '0x' + bytes.replace(/0x/i, ''), loose);\n var returnValue = new Result();\n returnValue.__length__ = 0;\n outputs.forEach(function (output, i) {\n var decodedValue = res[returnValue.__length__];\n decodedValue = (decodedValue === '0x') ? null : decodedValue;\n returnValue[i] = decodedValue;\n if (_.isObject(output) && output.name) {\n returnValue[output.name] = decodedValue;\n }\n returnValue.__length__++;\n });\n return returnValue;\n};\n/**\n * Decodes events non- and indexed parameters.\n *\n * @method decodeLog\n * @param {Object} inputs\n * @param {String} data\n * @param {Array} topics\n * @return {Array} array of plain params\n */\nABICoder.prototype.decodeLog = function (inputs, data, topics) {\n var _this = this;\n topics = _.isArray(topics) ? topics : [topics];\n data = data || '';\n var notIndexedInputs = [];\n var indexedParams = [];\n var topicCount = 0;\n // TODO check for anonymous logs?\n inputs.forEach(function (input, i) {\n if (input.indexed) {\n indexedParams[i] = (['bool', 'int', 'uint', 'address', 'fixed', 'ufixed'].find(function (staticType) {\n return input.type.indexOf(staticType) !== -1;\n })) ? _this.decodeParameter(input.type, topics[topicCount]) : topics[topicCount];\n topicCount++;\n }\n else {\n notIndexedInputs[i] = input;\n }\n });\n var nonIndexedData = data;\n var notIndexedParams = (nonIndexedData) ? this.decodeParametersWith(notIndexedInputs, nonIndexedData, true) : [];\n var returnValue = new Result();\n returnValue.__length__ = 0;\n inputs.forEach(function (res, i) {\n returnValue[i] = (res.type === 'string') ? '' : null;\n if (typeof notIndexedParams[i] !== 'undefined') {\n returnValue[i] = notIndexedParams[i];\n }\n if (typeof indexedParams[i] !== 'undefined') {\n returnValue[i] = indexedParams[i];\n }\n if (res.name) {\n returnValue[res.name] = returnValue[i];\n }\n returnValue.__length__++;\n });\n return returnValue;\n};\nvar coder = new ABICoder();\nmodule.exports = coder;\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n logger.checkNew(new.target, AbiCoder);\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n//# sourceMappingURL=array.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n//# sourceMappingURL=bytes.js.map","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","var sha3 = require('js-sha3').keccak_256\nvar uts46 = require('idna-uts46-hx')\n\nfunction namehash (inputName) {\n // Reject empty names:\n var node = ''\n for (var i = 0; i < 32; i++) {\n node += '00'\n }\n\n name = normalize(inputName)\n\n if (name) {\n var labels = name.split('.')\n\n for(var i = labels.length - 1; i >= 0; i--) {\n var labelSha = sha3(labels[i])\n node = sha3(new Buffer(node + labelSha, 'hex'))\n }\n }\n\n return '0x' + node\n}\n\nfunction normalize(name) {\n return name ? uts46.toUnicode(name, {useStd3ASCII: true, transitional: false}) : name\n}\n\nexports.hash = namehash\nexports.normalize = normalize\n","'use strict'\nconst varint = require('varint')\n\nmodule.exports = {\n numberToBuffer,\n bufferToNumber,\n varintBufferEncode,\n varintBufferDecode,\n varintEncode\n}\n\nfunction bufferToNumber (buf) {\n return parseInt(buf.toString('hex'), 16)\n}\n\nfunction numberToBuffer (num) {\n let hexString = num.toString(16)\n if (hexString.length % 2 === 1) {\n hexString = '0' + hexString\n }\n return Buffer.from(hexString, 'hex')\n}\n\nfunction varintBufferEncode (input) {\n return Buffer.from(varint.encode(bufferToNumber(input)))\n}\n\nfunction varintBufferDecode (input) {\n return numberToBuffer(varint.decode(input))\n}\n\nfunction varintEncode (num) {\n return Buffer.from(varint.encode(num))\n}\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","'use strict'\n\nconst { Buffer } = require('buffer')\nconst mh = require('multihashes')\nconst multibase = require('multibase')\nconst multicodec = require('multicodec')\nconst codecs = require('multicodec/src/base-table.json')\nconst CIDUtil = require('./cid-util')\nconst withIs = require('class-is')\n\n/**\n * @typedef {Object} SerializedCID\n * @param {string} codec\n * @param {number} version\n * @param {Buffer} multihash\n */\n\n/**\n * Test if the given input is a CID.\n * @function isCID\n * @memberof CID\n * @static\n * @param {any} other\n * @returns {bool}\n */\n\n/**\n * Class representing a CID ``\n * , as defined in [ipld/cid](https://github.com/multiformats/cid).\n * @class CID\n */\nclass CID {\n /**\n * Create a new CID.\n *\n * The algorithm for argument input is roughly:\n * ```\n * if (cid)\n * -> create a copy\n * else if (str)\n * if (1st char is on multibase table) -> CID String\n * else -> bs58 encoded multihash\n * else if (Buffer)\n * if (1st byte is 0 or 1) -> CID\n * else -> multihash\n * else if (Number)\n * -> construct CID by parts\n * ```\n *\n * @param {string|Buffer|CID} version\n * @param {string} [codec]\n * @param {Buffer} [multihash]\n * @param {string} [multibaseName]\n *\n * @example\n * new CID(, , , )\n * new CID()\n * new CID()\n * new CID()\n * new CID()\n * new CID()\n */\n constructor (version, codec, multihash, multibaseName) {\n if (_CID.isCID(version)) {\n // version is an exising CID instance\n const cid = version\n this.version = cid.version\n this.codec = cid.codec\n this.multihash = Buffer.from(cid.multihash)\n // Default guard for when a CID < 0.7 is passed with no multibaseName\n this.multibaseName = cid.multibaseName || (cid.version === 0 ? 'base58btc' : 'base32')\n return\n }\n\n if (typeof version === 'string') {\n // e.g. 'base32' or false\n const baseName = multibase.isEncoded(version)\n if (baseName) {\n // version is a CID String encoded with multibase, so v1\n const cid = multibase.decode(version)\n this.version = parseInt(cid.slice(0, 1).toString('hex'), 16)\n this.codec = multicodec.getCodec(cid.slice(1))\n this.multihash = multicodec.rmPrefix(cid.slice(1))\n this.multibaseName = baseName\n } else {\n // version is a base58btc string multihash, so v0\n this.version = 0\n this.codec = 'dag-pb'\n this.multihash = mh.fromB58String(version)\n this.multibaseName = 'base58btc'\n }\n CID.validateCID(this)\n Object.defineProperty(this, 'string', { value: version })\n return\n }\n\n if (Buffer.isBuffer(version)) {\n const firstByte = version.slice(0, 1)\n const v = parseInt(firstByte.toString('hex'), 16)\n if (v === 1) {\n // version is a CID buffer\n const cid = version\n this.version = v\n this.codec = multicodec.getCodec(cid.slice(1))\n this.multihash = multicodec.rmPrefix(cid.slice(1))\n this.multibaseName = 'base32'\n } else {\n // version is a raw multihash buffer, so v0\n this.version = 0\n this.codec = 'dag-pb'\n this.multihash = version\n this.multibaseName = 'base58btc'\n }\n CID.validateCID(this)\n return\n }\n\n // otherwise, assemble the CID from the parameters\n\n /**\n * @type {number}\n */\n this.version = version\n\n /**\n * @type {string}\n */\n this.codec = codec\n\n /**\n * @type {Buffer}\n */\n this.multihash = multihash\n\n /**\n * @type {string}\n */\n this.multibaseName = multibaseName || (version === 0 ? 'base58btc' : 'base32')\n\n CID.validateCID(this)\n }\n\n /**\n * The CID as a `Buffer`\n *\n * @return {Buffer}\n * @readonly\n *\n * @memberOf CID\n */\n get buffer () {\n let buffer = this._buffer\n\n if (!buffer) {\n if (this.version === 0) {\n buffer = this.multihash\n } else if (this.version === 1) {\n buffer = Buffer.concat([\n Buffer.from('01', 'hex'),\n multicodec.getCodeVarint(this.codec),\n this.multihash\n ])\n } else {\n throw new Error('unsupported version')\n }\n\n // Cache this buffer so it doesn't have to be recreated\n Object.defineProperty(this, '_buffer', { value: buffer })\n }\n\n return buffer\n }\n\n /**\n * Get the prefix of the CID.\n *\n * @returns {Buffer}\n * @readonly\n */\n get prefix () {\n return Buffer.concat([\n Buffer.from(`0${this.version}`, 'hex'),\n multicodec.getCodeVarint(this.codec),\n mh.prefix(this.multihash)\n ])\n }\n\n /**\n * Convert to a CID of version `0`.\n *\n * @returns {CID}\n */\n toV0 () {\n if (this.codec !== 'dag-pb') {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0')\n }\n\n const { name, length } = mh.decode(this.multihash)\n\n if (name !== 'sha2-256') {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0')\n }\n\n if (length !== 32) {\n throw new Error('Cannot convert non 32 byte multihash CID to CIDv0')\n }\n\n return new _CID(0, this.codec, this.multihash)\n }\n\n /**\n * Convert to a CID of version `1`.\n *\n * @returns {CID}\n */\n toV1 () {\n return new _CID(1, this.codec, this.multihash)\n }\n\n /**\n * Encode the CID into a string.\n *\n * @param {string} [base=this.multibaseName] - Base encoding to use.\n * @returns {string}\n */\n toBaseEncodedString (base = this.multibaseName) {\n if (this.string && base === this.multibaseName) {\n return this.string\n }\n let str = null\n if (this.version === 0) {\n if (base !== 'base58btc') {\n throw new Error('not supported with CIDv0, to support different bases, please migrate the instance do CIDv1, you can do that through cid.toV1()')\n }\n str = mh.toB58String(this.multihash)\n } else if (this.version === 1) {\n str = multibase.encode(base, this.buffer).toString()\n } else {\n throw new Error('unsupported version')\n }\n if (base === this.multibaseName) {\n // cache the string value\n Object.defineProperty(this, 'string', { value: str })\n }\n return str\n }\n\n /**\n * CID(QmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zR1n)\n *\n * @returns {String}\n */\n [Symbol.for('nodejs.util.inspect.custom')] () {\n return 'CID(' + this.toString() + ')'\n }\n\n toString (base) {\n return this.toBaseEncodedString(base)\n }\n\n /**\n * Serialize to a plain object.\n *\n * @returns {SerializedCID}\n */\n toJSON () {\n return {\n codec: this.codec,\n version: this.version,\n hash: this.multihash\n }\n }\n\n /**\n * Compare equality with another CID.\n *\n * @param {CID} other\n * @returns {bool}\n */\n equals (other) {\n return this.codec === other.codec &&\n this.version === other.version &&\n this.multihash.equals(other.multihash)\n }\n\n /**\n * Test if the given input is a valid CID object.\n * Throws if it is not.\n *\n * @param {any} other\n * @returns {void}\n */\n static validateCID (other) {\n const errorMsg = CIDUtil.checkCIDComponents(other)\n if (errorMsg) {\n throw new Error(errorMsg)\n }\n }\n}\n\nconst _CID = withIs(CID, {\n className: 'CID',\n symbolName: '@ipld/js-cid/CID'\n})\n\n_CID.codecs = codecs\n\nmodule.exports = _CID\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip leading spaces.\n if (source[psz] === ' ') { return }\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip trailing spaces.\n if (source[psz] === ' ') { return }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","'use strict'\nconst varint = require('varint')\nconst { Buffer } = require('buffer')\n\nmodule.exports = {\n numberToBuffer,\n bufferToNumber,\n varintBufferEncode,\n varintBufferDecode,\n varintEncode\n}\n\nfunction bufferToNumber (buf) {\n return parseInt(buf.toString('hex'), 16)\n}\n\nfunction numberToBuffer (num) {\n let hexString = num.toString(16)\n if (hexString.length % 2 === 1) {\n hexString = '0' + hexString\n }\n return Buffer.from(hexString, 'hex')\n}\n\nfunction varintBufferEncode (input) {\n return Buffer.from(varint.encode(bufferToNumber(input)))\n}\n\nfunction varintBufferDecode (input) {\n return numberToBuffer(varint.decode(input))\n}\n\nfunction varintEncode (num) {\n return Buffer.from(varint.encode(num))\n}\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar core = require('web3-core');\nvar Method = require('web3-core-method');\nvar utils = require('web3-utils');\nvar Net = require('web3-net');\nvar formatters = require('web3-core-helpers').formatters;\nvar Personal = function Personal() {\n var _this = this;\n // sets _requestmanager\n core.packageInit(this, arguments);\n this.net = new Net(this);\n var defaultAccount = null;\n var defaultBlock = 'latest';\n Object.defineProperty(this, 'defaultAccount', {\n get: function () {\n return defaultAccount;\n },\n set: function (val) {\n if (val) {\n defaultAccount = utils.toChecksumAddress(formatters.inputAddressFormatter(val));\n }\n // update defaultBlock\n methods.forEach(function (method) {\n method.defaultAccount = defaultAccount;\n });\n return val;\n },\n enumerable: true\n });\n Object.defineProperty(this, 'defaultBlock', {\n get: function () {\n return defaultBlock;\n },\n set: function (val) {\n defaultBlock = val;\n // update defaultBlock\n methods.forEach(function (method) {\n method.defaultBlock = defaultBlock;\n });\n return val;\n },\n enumerable: true\n });\n var methods = [\n new Method({\n name: 'getAccounts',\n call: 'personal_listAccounts',\n params: 0,\n outputFormatter: utils.toChecksumAddress\n }),\n new Method({\n name: 'newAccount',\n call: 'personal_newAccount',\n params: 1,\n inputFormatter: [null],\n outputFormatter: utils.toChecksumAddress\n }),\n new Method({\n name: 'unlockAccount',\n call: 'personal_unlockAccount',\n params: 3,\n inputFormatter: [formatters.inputAddressFormatter, null, null]\n }),\n new Method({\n name: 'lockAccount',\n call: 'personal_lockAccount',\n params: 1,\n inputFormatter: [formatters.inputAddressFormatter]\n }),\n new Method({\n name: 'importRawKey',\n call: 'personal_importRawKey',\n params: 2\n }),\n new Method({\n name: 'sendTransaction',\n call: 'personal_sendTransaction',\n params: 2,\n inputFormatter: [formatters.inputTransactionFormatter, null]\n }),\n new Method({\n name: 'signTransaction',\n call: 'personal_signTransaction',\n params: 2,\n inputFormatter: [formatters.inputTransactionFormatter, null]\n }),\n new Method({\n name: 'sign',\n call: 'personal_sign',\n params: 3,\n inputFormatter: [formatters.inputSignFormatter, formatters.inputAddressFormatter, null]\n }),\n new Method({\n name: 'ecRecover',\n call: 'personal_ecRecover',\n params: 2,\n inputFormatter: [formatters.inputSignFormatter, null]\n })\n ];\n methods.forEach(function (method) {\n method.attachToObject(_this);\n method.setRequestManager(_this._requestManager);\n method.defaultBlock = _this.defaultBlock;\n method.defaultAccount = _this.defaultAccount;\n });\n};\ncore.addProviders(Personal);\nmodule.exports = Personal;\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nfunction checkBuffer (buf, name) {\n if (typeof buf !== 'string' && !Buffer.isBuffer(buf)) {\n throw new TypeError(name + ' must be a buffer or string')\n }\n}\n\nmodule.exports = function (password, salt, iterations, keylen) {\n checkBuffer(password, 'Password')\n checkBuffer(salt, 'Salt')\n\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n}\nmodule.exports = defaultEncoding\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar Buffer = require('safe-buffer').Buffer\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(password, salt, iterations, keylen)\n\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","// The RLP format\n// Serialization and deserialization for the BytesTree type, under the following grammar:\n// | First byte | Meaning |\n// | ---------- | -------------------------------------------------------------------------- |\n// | 0 to 127 | HEX(leaf) |\n// | 128 to 183 | HEX(length_of_leaf + 128) + HEX(leaf) |\n// | 184 to 191 | HEX(length_of_length_of_leaf + 128 + 55) + HEX(length_of_leaf) + HEX(leaf) |\n// | 192 to 247 | HEX(length_of_node + 192) + HEX(node) |\n// | 248 to 255 | HEX(length_of_length_of_node + 128 + 55) + HEX(length_of_node) + HEX(node) |\n\nconst encode = tree => {\n const padEven = str => str.length % 2 === 0 ? str : \"0\" + str;\n\n const uint = num => padEven(num.toString(16));\n\n const length = (len, add) => len < 56 ? uint(add + len) : uint(add + uint(len).length / 2 + 55) + uint(len);\n\n const dataTree = tree => {\n if (typeof tree === \"string\") {\n const hex = tree.slice(2);\n const pre = hex.length != 2 || hex >= \"80\" ? length(hex.length / 2, 128) : \"\";\n return pre + hex;\n } else {\n const hex = tree.map(dataTree).join(\"\");\n const pre = length(hex.length / 2, 192);\n return pre + hex;\n }\n };\n\n return \"0x\" + dataTree(tree);\n};\n\nconst decode = hex => {\n let i = 2;\n\n const parseTree = () => {\n if (i >= hex.length) throw \"\";\n const head = hex.slice(i, i + 2);\n return head < \"80\" ? (i += 2, \"0x\" + head) : head < \"c0\" ? parseHex() : parseList();\n };\n\n const parseLength = () => {\n const len = parseInt(hex.slice(i, i += 2), 16) % 64;\n return len < 56 ? len : parseInt(hex.slice(i, i += (len - 55) * 2), 16);\n };\n\n const parseHex = () => {\n const len = parseLength();\n return \"0x\" + hex.slice(i, i += len * 2);\n };\n\n const parseList = () => {\n const lim = parseLength() * 2 + i;\n let list = [];\n while (i < lim) list.push(parseTree());\n return list;\n };\n\n try {\n return parseTree();\n } catch (e) {\n return [];\n }\n};\n\nmodule.exports = { encode, decode };","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar ethereumjs_common_1 = require(\"ethereumjs-common\");\nvar buffer_1 = require(\"buffer\");\n// secp256k1n/2\nvar N_DIV_2 = new ethereumjs_util_1.BN('7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0', 16);\n/**\n * An Ethereum transaction.\n */\nvar Transaction = /** @class */ (function () {\n /**\n * Creates a new transaction from an object with its fields' values.\n *\n * @param data - A transaction can be initialized with its rlp representation, an array containing\n * the value of its fields in order, or an object containing them by name.\n *\n * @param opts - The transaction's options, used to indicate the chain and hardfork the\n * transactions belongs to.\n *\n * @note Transaction objects implement EIP155 by default. To disable it, use the constructor's\n * second parameter to set a chain and hardfork before EIP155 activation (i.e. before Spurious\n * Dragon.)\n *\n * @example\n * ```js\n * const txData = {\n * nonce: '0x00',\n * gasPrice: '0x09184e72a000',\n * gasLimit: '0x2710',\n * to: '0x0000000000000000000000000000000000000000',\n * value: '0x00',\n * data: '0x7f7465737432000000000000000000000000000000000000000000000000000000600057',\n * v: '0x1c',\n * r: '0x5e1d3a76fbf824220eafc8c79ad578ad2b67d01b0c2425eb1f1347e8f50882ab',\n * s: '0x5bd428537f05f9830e93792f90ea6a3e2d1ee84952dd96edbae9f658f831ab13'\n * };\n * const tx = new Transaction(txData);\n * ```\n */\n function Transaction(data, opts) {\n if (data === void 0) { data = {}; }\n if (opts === void 0) { opts = {}; }\n // instantiate Common class instance based on passed options\n if (opts.common) {\n if (opts.chain || opts.hardfork) {\n throw new Error('Instantiation with both opts.common, and opts.chain and opts.hardfork parameter not allowed!');\n }\n this._common = opts.common;\n }\n else {\n var chain = opts.chain ? opts.chain : 'mainnet';\n var hardfork = opts.hardfork ? opts.hardfork : 'petersburg';\n this._common = new ethereumjs_common_1.default(chain, hardfork);\n }\n // Define Properties\n var fields = [\n {\n name: 'nonce',\n length: 32,\n allowLess: true,\n default: new buffer_1.Buffer([]),\n },\n {\n name: 'gasPrice',\n length: 32,\n allowLess: true,\n default: new buffer_1.Buffer([]),\n },\n {\n name: 'gasLimit',\n alias: 'gas',\n length: 32,\n allowLess: true,\n default: new buffer_1.Buffer([]),\n },\n {\n name: 'to',\n allowZero: true,\n length: 20,\n default: new buffer_1.Buffer([]),\n },\n {\n name: 'value',\n length: 32,\n allowLess: true,\n default: new buffer_1.Buffer([]),\n },\n {\n name: 'data',\n alias: 'input',\n allowZero: true,\n default: new buffer_1.Buffer([]),\n },\n {\n name: 'v',\n allowZero: true,\n default: new buffer_1.Buffer([]),\n },\n {\n name: 'r',\n length: 32,\n allowZero: true,\n allowLess: true,\n default: new buffer_1.Buffer([]),\n },\n {\n name: 's',\n length: 32,\n allowZero: true,\n allowLess: true,\n default: new buffer_1.Buffer([]),\n },\n ];\n // attached serialize\n ethereumjs_util_1.defineProperties(this, fields, data);\n /**\n * @property {Buffer} from (read only) sender address of this transaction, mathematically derived from other parameters.\n * @name from\n * @memberof Transaction\n */\n Object.defineProperty(this, 'from', {\n enumerable: true,\n configurable: true,\n get: this.getSenderAddress.bind(this),\n });\n this._validateV(this.v);\n this._overrideVSetterWithValidation();\n }\n /**\n * If the tx's `to` is to the creation address\n */\n Transaction.prototype.toCreationAddress = function () {\n return this.to.toString('hex') === '';\n };\n /**\n * Computes a sha3-256 hash of the serialized tx\n * @param includeSignature - Whether or not to include the signature\n */\n Transaction.prototype.hash = function (includeSignature) {\n if (includeSignature === void 0) { includeSignature = true; }\n var items;\n if (includeSignature) {\n items = this.raw;\n }\n else {\n if (this._implementsEIP155()) {\n items = this.raw.slice(0, 6).concat([\n ethereumjs_util_1.toBuffer(this.getChainId()),\n // TODO: stripping zeros should probably be a responsibility of the rlp module\n ethereumjs_util_1.stripZeros(ethereumjs_util_1.toBuffer(0)),\n ethereumjs_util_1.stripZeros(ethereumjs_util_1.toBuffer(0)),\n ]);\n }\n else {\n items = this.raw.slice(0, 6);\n }\n }\n // create hash\n return ethereumjs_util_1.rlphash(items);\n };\n /**\n * returns chain ID\n */\n Transaction.prototype.getChainId = function () {\n return this._common.chainId();\n };\n /**\n * returns the sender's address\n */\n Transaction.prototype.getSenderAddress = function () {\n if (this._from) {\n return this._from;\n }\n var pubkey = this.getSenderPublicKey();\n this._from = ethereumjs_util_1.publicToAddress(pubkey);\n return this._from;\n };\n /**\n * returns the public key of the sender\n */\n Transaction.prototype.getSenderPublicKey = function () {\n if (!this.verifySignature()) {\n throw new Error('Invalid Signature');\n }\n // If the signature was verified successfully the _senderPubKey field is defined\n return this._senderPubKey;\n };\n /**\n * Determines if the signature is valid\n */\n Transaction.prototype.verifySignature = function () {\n var msgHash = this.hash(false);\n // All transaction signatures whose s-value is greater than secp256k1n/2 are considered invalid.\n if (this._common.gteHardfork('homestead') && new ethereumjs_util_1.BN(this.s).cmp(N_DIV_2) === 1) {\n return false;\n }\n try {\n var v = ethereumjs_util_1.bufferToInt(this.v);\n var useChainIdWhileRecoveringPubKey = v >= this.getChainId() * 2 + 35 && this._common.gteHardfork('spuriousDragon');\n this._senderPubKey = ethereumjs_util_1.ecrecover(msgHash, v, this.r, this.s, useChainIdWhileRecoveringPubKey ? this.getChainId() : undefined);\n }\n catch (e) {\n return false;\n }\n return !!this._senderPubKey;\n };\n /**\n * sign a transaction with a given private key\n * @param privateKey - Must be 32 bytes in length\n */\n Transaction.prototype.sign = function (privateKey) {\n // We clear any previous signature before signing it. Otherwise, _implementsEIP155's can give\n // different results if this tx was already signed.\n this.v = new buffer_1.Buffer([]);\n this.s = new buffer_1.Buffer([]);\n this.r = new buffer_1.Buffer([]);\n var msgHash = this.hash(false);\n var sig = ethereumjs_util_1.ecsign(msgHash, privateKey);\n if (this._implementsEIP155()) {\n sig.v += this.getChainId() * 2 + 8;\n }\n Object.assign(this, sig);\n };\n /**\n * The amount of gas paid for the data in this tx\n */\n Transaction.prototype.getDataFee = function () {\n var data = this.raw[5];\n var cost = new ethereumjs_util_1.BN(0);\n for (var i = 0; i < data.length; i++) {\n data[i] === 0\n ? cost.iaddn(this._common.param('gasPrices', 'txDataZero'))\n : cost.iaddn(this._common.param('gasPrices', 'txDataNonZero'));\n }\n return cost;\n };\n /**\n * the minimum amount of gas the tx must have (DataFee + TxFee + Creation Fee)\n */\n Transaction.prototype.getBaseFee = function () {\n var fee = this.getDataFee().iaddn(this._common.param('gasPrices', 'tx'));\n if (this._common.gteHardfork('homestead') && this.toCreationAddress()) {\n fee.iaddn(this._common.param('gasPrices', 'txCreation'));\n }\n return fee;\n };\n /**\n * the up front amount that an account must have for this transaction to be valid\n */\n Transaction.prototype.getUpfrontCost = function () {\n return new ethereumjs_util_1.BN(this.gasLimit).imul(new ethereumjs_util_1.BN(this.gasPrice)).iadd(new ethereumjs_util_1.BN(this.value));\n };\n Transaction.prototype.validate = function (stringError) {\n if (stringError === void 0) { stringError = false; }\n var errors = [];\n if (!this.verifySignature()) {\n errors.push('Invalid Signature');\n }\n if (this.getBaseFee().cmp(new ethereumjs_util_1.BN(this.gasLimit)) > 0) {\n errors.push([\"gas limit is too low. Need at least \" + this.getBaseFee()]);\n }\n if (stringError === false) {\n return errors.length === 0;\n }\n else {\n return errors.join(' ');\n }\n };\n /**\n * Returns the rlp encoding of the transaction\n */\n Transaction.prototype.serialize = function () {\n // Note: This never gets executed, defineProperties overwrites it.\n return ethereumjs_util_1.rlp.encode(this.raw);\n };\n /**\n * Returns the transaction in JSON format\n * @see {@link https://github.com/ethereumjs/ethereumjs-util/blob/master/docs/index.md#defineproperties|ethereumjs-util}\n */\n Transaction.prototype.toJSON = function (labels) {\n if (labels === void 0) { labels = false; }\n // Note: This never gets executed, defineProperties overwrites it.\n return {};\n };\n Transaction.prototype._validateV = function (v) {\n if (v === undefined || v.length === 0) {\n return;\n }\n if (!this._common.gteHardfork('spuriousDragon')) {\n return;\n }\n var vInt = ethereumjs_util_1.bufferToInt(v);\n if (vInt === 27 || vInt === 28) {\n return;\n }\n var isValidEIP155V = vInt === this.getChainId() * 2 + 35 || vInt === this.getChainId() * 2 + 36;\n if (!isValidEIP155V) {\n throw new Error(\"Incompatible EIP155-based V \" + vInt + \" and chain id \" + this.getChainId() + \". See the second parameter of the Transaction constructor to set the chain id.\");\n }\n };\n Transaction.prototype._isSigned = function () {\n return this.v.length > 0 && this.r.length > 0 && this.s.length > 0;\n };\n Transaction.prototype._overrideVSetterWithValidation = function () {\n var _this = this;\n var vDescriptor = Object.getOwnPropertyDescriptor(this, 'v');\n Object.defineProperty(this, 'v', __assign({}, vDescriptor, { set: function (v) {\n if (v !== undefined) {\n _this._validateV(ethereumjs_util_1.toBuffer(v));\n }\n vDescriptor.set(v);\n } }));\n };\n Transaction.prototype._implementsEIP155 = function () {\n var onEIP155BlockOrLater = this._common.gteHardfork('spuriousDragon');\n if (!this._isSigned()) {\n // We sign with EIP155 all unsigned transactions after spuriousDragon\n return onEIP155BlockOrLater;\n }\n // EIP155 spec:\n // If block.number >= 2,675,000 and v = CHAIN_ID * 2 + 35 or v = CHAIN_ID * 2 + 36, then when computing\n // the hash of a transaction for purposes of signing or recovering, instead of hashing only the first six\n // elements (i.e. nonce, gasprice, startgas, to, value, data), hash nine elements, with v replaced by\n // CHAIN_ID, r = 0 and s = 0.\n var v = ethereumjs_util_1.bufferToInt(this.v);\n var vAndChainIdMeetEIP155Conditions = v === this.getChainId() * 2 + 35 || v === this.getChainId() * 2 + 36;\n return vAndChainIdMeetEIP155Conditions && onEIP155BlockOrLater;\n };\n return Transaction;\n}());\nexports.default = Transaction;\n//# sourceMappingURL=transaction.js.map","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","/**\n * Returns a `Boolean` on whether or not the a `String` starts with '0x'\n * @param {String} str the string input value\n * @return {Boolean} a boolean if it is or is not hex prefixed\n * @throws if the str input is not a string\n */\nmodule.exports = function isHexPrefixed(str) {\n if (typeof str !== 'string') {\n throw new Error(\"[is-hex-prefixed] value must be type 'string', is currently type \" + (typeof str) + \", while checking isHexPrefixed.\");\n }\n\n return str.slice(0, 2) === '0x';\n}\n","'use strict';\n\nvar objectAssign = require('object-assign');\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar ES = require('es-abstract/es5');\nvar replace = bind.call(Function.call, String.prototype.replace);\n\n/* eslint-disable no-control-regex */\nvar leftWhitespace = /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/;\nvar rightWhitespace = /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/;\n/* eslint-enable no-control-regex */\n\nmodule.exports = function trim() {\n\tvar S = ES.ToString(ES.CheckObjectCoercible(this));\n\treturn replace(replace(S, leftWhitespace, ''), rightWhitespace, '');\n};\n","'use strict';\n\n/* globals\n\tSet,\n\tMap,\n\tWeakSet,\n\tWeakMap,\n\n\tPromise,\n\n\tSymbol,\n\tProxy,\n\n\tAtomics,\n\tSharedArrayBuffer,\n\n\tArrayBuffer,\n\tDataView,\n\tUint8Array,\n\tFloat32Array,\n\tFloat64Array,\n\tInt8Array,\n\tInt16Array,\n\tInt32Array,\n\tUint8ClampedArray,\n\tUint16Array,\n\tUint32Array,\n*/\n\nvar undefined; // eslint-disable-line no-shadow-restricted-names\n\nvar ThrowTypeError = Object.getOwnPropertyDescriptor\n\t? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }())\n\t: function () { throw new TypeError(); };\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'$ %Array%': Array,\n\t'$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'$ %ArrayPrototype%': Array.prototype,\n\t'$ %ArrayProto_entries%': Array.prototype.entries,\n\t'$ %ArrayProto_forEach%': Array.prototype.forEach,\n\t'$ %ArrayProto_keys%': Array.prototype.keys,\n\t'$ %ArrayProto_values%': Array.prototype.values,\n\t'$ %AsyncFromSyncIteratorPrototype%': undefined,\n\t'$ %AsyncFunction%': asyncFunction,\n\t'$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'$ %AsyncGeneratorFunction%': asyncGenFunction,\n\t'$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'$ %Boolean%': Boolean,\n\t'$ %BooleanPrototype%': Boolean.prototype,\n\t'$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'$ %Date%': Date,\n\t'$ %DatePrototype%': Date.prototype,\n\t'$ %decodeURI%': decodeURI,\n\t'$ %decodeURIComponent%': decodeURIComponent,\n\t'$ %encodeURI%': encodeURI,\n\t'$ %encodeURIComponent%': encodeURIComponent,\n\t'$ %Error%': Error,\n\t'$ %ErrorPrototype%': Error.prototype,\n\t'$ %eval%': eval, // eslint-disable-line no-eval\n\t'$ %EvalError%': EvalError,\n\t'$ %EvalErrorPrototype%': EvalError.prototype,\n\t'$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'$ %Function%': Function,\n\t'$ %FunctionPrototype%': Function.prototype,\n\t'$ %Generator%': generator ? getProto(generator()) : undefined,\n\t'$ %GeneratorFunction%': generatorFunction,\n\t'$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'$ %isFinite%': isFinite,\n\t'$ %isNaN%': isNaN,\n\t'$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'$ %JSON%': JSON,\n\t'$ %JSONParse%': JSON.parse,\n\t'$ %Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'$ %Math%': Math,\n\t'$ %Number%': Number,\n\t'$ %NumberPrototype%': Number.prototype,\n\t'$ %Object%': Object,\n\t'$ %ObjectPrototype%': Object.prototype,\n\t'$ %ObjProto_toString%': Object.prototype.toString,\n\t'$ %ObjProto_valueOf%': Object.prototype.valueOf,\n\t'$ %parseFloat%': parseFloat,\n\t'$ %parseInt%': parseInt,\n\t'$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'$ %RangeError%': RangeError,\n\t'$ %RangeErrorPrototype%': RangeError.prototype,\n\t'$ %ReferenceError%': ReferenceError,\n\t'$ %ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'$ %RegExp%': RegExp,\n\t'$ %RegExpPrototype%': RegExp.prototype,\n\t'$ %Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'$ %String%': String,\n\t'$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'$ %StringPrototype%': String.prototype,\n\t'$ %Symbol%': hasSymbols ? Symbol : undefined,\n\t'$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'$ %SyntaxError%': SyntaxError,\n\t'$ %SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'$ %ThrowTypeError%': ThrowTypeError,\n\t'$ %TypedArray%': TypedArray,\n\t'$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'$ %TypeError%': TypeError,\n\t'$ %TypeErrorPrototype%': TypeError.prototype,\n\t'$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'$ %URIError%': URIError,\n\t'$ %URIErrorPrototype%': URIError.prototype,\n\t'$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar key = '$ ' + name;\n\tif (!(key in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {\n\t\tthrow new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\treturn INTRINSICS[key];\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar zeroWidthSpace = '\\u200b';\n\nmodule.exports = function getPolyfill() {\n\tif (String.prototype.trim && zeroWidthSpace.trim() === zeroWidthSpace) {\n\t\treturn String.prototype.trim;\n\t}\n\treturn implementation;\n};\n","var A = require(\"./array.js\");\n\nvar at = function at(bytes, index) {\n return parseInt(bytes.slice(index * 2 + 2, index * 2 + 4), 16);\n};\n\nvar random = function random(bytes) {\n var rnd = void 0;\n if (typeof window !== \"undefined\" && window.crypto && window.crypto.getRandomValues) rnd = window.crypto.getRandomValues(new Uint8Array(bytes));else if (typeof require !== \"undefined\") rnd = require(\"c\" + \"rypto\").randomBytes(bytes);else throw \"Safe random numbers not available.\";\n var hex = \"0x\";\n for (var i = 0; i < bytes; ++i) {\n hex += (\"00\" + rnd[i].toString(16)).slice(-2);\n }return hex;\n};\n\nvar length = function length(a) {\n return (a.length - 2) / 2;\n};\n\nvar flatten = function flatten(a) {\n return \"0x\" + a.reduce(function (r, s) {\n return r + s.slice(2);\n }, \"\");\n};\n\nvar slice = function slice(i, j, bs) {\n return \"0x\" + bs.slice(i * 2 + 2, j * 2 + 2);\n};\n\nvar reverse = function reverse(hex) {\n var rev = \"0x\";\n for (var i = 0, l = length(hex); i < l; ++i) {\n rev += hex.slice((l - i) * 2, (l - i + 1) * 2);\n }\n return rev;\n};\n\nvar pad = function pad(l, hex) {\n return hex.length === l * 2 + 2 ? hex : pad(l, \"0x\" + \"0\" + hex.slice(2));\n};\n\nvar padRight = function padRight(l, hex) {\n return hex.length === l * 2 + 2 ? hex : padRight(l, hex + \"0\");\n};\n\nvar toArray = function toArray(hex) {\n var arr = [];\n for (var i = 2, l = hex.length; i < l; i += 2) {\n arr.push(parseInt(hex.slice(i, i + 2), 16));\n }return arr;\n};\n\nvar fromArray = function fromArray(arr) {\n var hex = \"0x\";\n for (var i = 0, l = arr.length; i < l; ++i) {\n var b = arr[i];\n hex += (b < 16 ? \"0\" : \"\") + b.toString(16);\n }\n return hex;\n};\n\nvar toUint8Array = function toUint8Array(hex) {\n return new Uint8Array(toArray(hex));\n};\n\nvar fromUint8Array = function fromUint8Array(arr) {\n return fromArray([].slice.call(arr, 0));\n};\n\nvar fromNumber = function fromNumber(num) {\n var hex = num.toString(16);\n return hex.length % 2 === 0 ? \"0x\" + hex : \"0x0\" + hex;\n};\n\nvar toNumber = function toNumber(hex) {\n return parseInt(hex.slice(2), 16);\n};\n\nvar concat = function concat(a, b) {\n return a.concat(b.slice(2));\n};\n\nvar fromNat = function fromNat(bn) {\n return bn === \"0x0\" ? \"0x\" : bn.length % 2 === 0 ? bn : \"0x0\" + bn.slice(2);\n};\n\nvar toNat = function toNat(bn) {\n return bn[2] === \"0\" ? \"0x\" + bn.slice(3) : bn;\n};\n\nvar fromAscii = function fromAscii(ascii) {\n var hex = \"0x\";\n for (var i = 0; i < ascii.length; ++i) {\n hex += (\"00\" + ascii.charCodeAt(i).toString(16)).slice(-2);\n }return hex;\n};\n\nvar toAscii = function toAscii(hex) {\n var ascii = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n ascii += String.fromCharCode(parseInt(hex.slice(i, i + 2), 16));\n }return ascii;\n};\n\n// From https://gist.github.com/pascaldekloe/62546103a1576803dade9269ccf76330\nvar fromString = function fromString(s) {\n var makeByte = function makeByte(uint8) {\n var b = uint8.toString(16);\n return b.length < 2 ? \"0\" + b : b;\n };\n var bytes = \"0x\";\n for (var ci = 0; ci != s.length; ci++) {\n var c = s.charCodeAt(ci);\n if (c < 128) {\n bytes += makeByte(c);\n continue;\n }\n if (c < 2048) {\n bytes += makeByte(c >> 6 | 192);\n } else {\n if (c > 0xd7ff && c < 0xdc00) {\n if (++ci == s.length) return null;\n var c2 = s.charCodeAt(ci);\n if (c2 < 0xdc00 || c2 > 0xdfff) return null;\n c = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n bytes += makeByte(c >> 18 | 240);\n bytes += makeByte(c >> 12 & 63 | 128);\n } else {\n // c <= 0xffff\n bytes += makeByte(c >> 12 | 224);\n }\n bytes += makeByte(c >> 6 & 63 | 128);\n }\n bytes += makeByte(c & 63 | 128);\n }\n return bytes;\n};\n\nvar toString = function toString(bytes) {\n var s = '';\n var i = 0;\n var l = length(bytes);\n while (i < l) {\n var c = at(bytes, i++);\n if (c > 127) {\n if (c > 191 && c < 224) {\n if (i >= l) return null;\n c = (c & 31) << 6 | at(bytes, i) & 63;\n } else if (c > 223 && c < 240) {\n if (i + 1 >= l) return null;\n c = (c & 15) << 12 | (at(bytes, i) & 63) << 6 | at(bytes, ++i) & 63;\n } else if (c > 239 && c < 248) {\n if (i + 2 >= l) return null;\n c = (c & 7) << 18 | (at(bytes, i) & 63) << 12 | (at(bytes, ++i) & 63) << 6 | at(bytes, ++i) & 63;\n } else return null;\n ++i;\n }\n if (c <= 0xffff) s += String.fromCharCode(c);else if (c <= 0x10ffff) {\n c -= 0x10000;\n s += String.fromCharCode(c >> 10 | 0xd800);\n s += String.fromCharCode(c & 0x3FF | 0xdc00);\n } else return null;\n }\n return s;\n};\n\nmodule.exports = {\n random: random,\n length: length,\n concat: concat,\n flatten: flatten,\n slice: slice,\n reverse: reverse,\n pad: pad,\n padRight: padRight,\n fromAscii: fromAscii,\n toAscii: toAscii,\n fromString: fromString,\n toString: toString,\n fromNumber: fromNumber,\n toNumber: toNumber,\n fromNat: fromNat,\n toNat: toNat,\n fromArray: fromArray,\n toArray: toArray,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array\n};","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @authors:\n * Fabian Vogelsteller \n * Gav Wood \n * Jeffrey Wilcke \n * Marek Kotewicz \n * Marian Oancea \n * @date 2017\n */\n\"use strict\";\nvar version = require('../package.json').version;\nvar core = require('web3-core');\nvar Eth = require('web3-eth');\nvar Net = require('web3-net');\nvar Personal = require('web3-eth-personal');\nvar Shh = require('web3-shh');\nvar Bzz = require('web3-bzz');\nvar utils = require('web3-utils');\nvar Web3 = function Web3() {\n var _this = this;\n // sets _requestmanager etc\n core.packageInit(this, arguments);\n this.version = version;\n this.utils = utils;\n this.eth = new Eth(this);\n this.shh = new Shh(this);\n this.bzz = new Bzz(this);\n // overwrite package setProvider\n var setProvider = this.setProvider;\n this.setProvider = function (provider, net) {\n /*jshint unused: false */\n setProvider.apply(_this, arguments);\n _this.eth.setRequestManager(_this._requestManager);\n _this.shh.setRequestManager(_this._requestManager);\n _this.bzz.setProvider(provider);\n return true;\n };\n};\nWeb3.version = version;\nWeb3.utils = utils;\nWeb3.modules = {\n Eth: Eth,\n Net: Net,\n Personal: Personal,\n Shh: Shh,\n Bzz: Bzz\n};\ncore.addProviders(Web3);\nmodule.exports = Web3;\n","/*\n This file is part of web3.js.\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file index.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nconst { callbackify } = require('util');\nvar _ = require('underscore');\nvar errors = require('web3-core-helpers').errors;\nvar Jsonrpc = require('./jsonrpc.js');\nvar BatchManager = require('./batch.js');\nvar givenProvider = require('./givenProvider.js');\n/**\n * It's responsible for passing messages to providers\n * It's also responsible for polling the ethereum node for incoming messages\n * Default poll timeout is 1 second\n * Singleton\n *\n * @param {string|Object}provider\n * @param {Net.Socket} net\n *\n * @constructor\n */\nvar RequestManager = function RequestManager(provider, net) {\n this.provider = null;\n this.providers = RequestManager.providers;\n this.setProvider(provider, net);\n this.subscriptions = new Map();\n};\nRequestManager.givenProvider = givenProvider;\nRequestManager.providers = {\n WebsocketProvider: require('web3-providers-ws'),\n HttpProvider: require('web3-providers-http'),\n IpcProvider: require('web3-providers-ipc')\n};\n/**\n * Should be used to set provider of request manager\n *\n * @method setProvider\n *\n * @param {Object} provider\n * @param {net.Socket} net\n *\n * @returns void\n */\nRequestManager.prototype.setProvider = function (provider, net) {\n var _this = this;\n // autodetect provider\n if (provider && typeof provider === 'string' && this.providers) {\n // HTTP\n if (/^http(s)?:\\/\\//i.test(provider)) {\n provider = new this.providers.HttpProvider(provider);\n // WS\n }\n else if (/^ws(s)?:\\/\\//i.test(provider)) {\n provider = new this.providers.WebsocketProvider(provider);\n // IPC\n }\n else if (provider && typeof net === 'object' && typeof net.connect === 'function') {\n provider = new this.providers.IpcProvider(provider, net);\n }\n else if (provider) {\n throw new Error('Can\\'t autodetect provider for \"' + provider + '\"');\n }\n }\n // reset the old one before changing, if still connected\n if (this.provider && this.provider.connected)\n this.clearSubscriptions();\n this.provider = provider || null;\n // listen to incoming notifications\n if (this.provider && this.provider.on) {\n this.provider.on('data', function data(result, deprecatedResult) {\n result = result || deprecatedResult; // this is for possible old providers, which may had the error first handler\n // if result is a subscription, call callback for that subscription\n if (result.method && result.params && result.params.subscription && _this.subscriptions.has(result.params.subscription)) {\n _this.subscriptions.get(result.params.subscription).callback(null, result.params.result);\n }\n });\n // resubscribe if the provider has reconnected\n this.provider.on('connect', function connect() {\n _this.subscriptions.forEach(function (subscription) {\n subscription.subscription.resubscribe();\n });\n });\n // notify all subscriptions about the error condition\n this.provider.on('error', function error(error) {\n _this.subscriptions.forEach(function (subscription) {\n subscription.callback(error);\n });\n });\n // notify all subscriptions about bad close conditions\n this.provider.on('close', function close(event) {\n if (!_this._isCleanCloseEvent(event) || _this._isIpcCloseError(event)) {\n _this.subscriptions.forEach(function (subscription) {\n subscription.callback(errors.ConnectionCloseError(event));\n _this.subscriptions.delete(subscription.subscription.id);\n });\n if (_this.provider && _this.provider.emit) {\n _this.provider.emit('error', errors.ConnectionCloseError(event));\n }\n }\n if (_this.provider && _this.provider.emit) {\n _this.provider.emit('end', event);\n }\n });\n // TODO add end, timeout??\n }\n};\n/**\n * Asynchronously send request to provider.\n * Prefers to use the `request` method available on the provider as specified in [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193).\n * If `request` is not available, falls back to `sendAsync` and `send` respectively.\n * @method send\n * @param {Object} data\n * @param {Function} callback\n */\nRequestManager.prototype.send = function (data, callback) {\n callback = callback || function () { };\n if (!this.provider) {\n return callback(errors.InvalidProvider());\n }\n const { method, params } = data;\n const jsonrpcPayload = Jsonrpc.toPayload(method, params);\n const jsonrpcResultCallback = this._jsonrpcResultCallback(callback, jsonrpcPayload);\n if (this.provider.request) {\n const callbackRequest = callbackify(this.provider.request.bind(this.provider));\n const requestArgs = { method, params };\n callbackRequest(requestArgs, callback);\n }\n else if (this.provider.sendAsync) {\n this.provider.sendAsync(jsonrpcPayload, jsonrpcResultCallback);\n }\n else if (this.provider.send) {\n this.provider.send(jsonrpcPayload, jsonrpcResultCallback);\n }\n else {\n throw new Error('Provider does not have a request or send method to use.');\n }\n};\n/**\n * Asynchronously send batch request.\n * Only works if provider supports batch methods through `sendAsync` or `send`.\n * @method sendBatch\n * @param {Array} data - array of payload objects\n * @param {Function} callback\n */\nRequestManager.prototype.sendBatch = function (data, callback) {\n if (!this.provider) {\n return callback(errors.InvalidProvider());\n }\n var payload = Jsonrpc.toBatchPayload(data);\n this.provider[this.provider.sendAsync ? 'sendAsync' : 'send'](payload, function (err, results) {\n if (err) {\n return callback(err);\n }\n if (!_.isArray(results)) {\n return callback(errors.InvalidResponse(results));\n }\n callback(null, results);\n });\n};\n/**\n * Waits for notifications\n *\n * @method addSubscription\n * @param {Subscription} subscription the subscription\n * @param {String} type the subscription namespace (eth, personal, etc)\n * @param {Function} callback the callback to call for incoming notifications\n */\nRequestManager.prototype.addSubscription = function (subscription, callback) {\n if (this.provider.on) {\n this.subscriptions.set(subscription.id, {\n callback: callback,\n subscription: subscription\n });\n }\n else {\n throw new Error('The provider doesn\\'t support subscriptions: ' + this.provider.constructor.name);\n }\n};\n/**\n * Waits for notifications\n *\n * @method removeSubscription\n * @param {String} id the subscription id\n * @param {Function} callback fired once the subscription is removed\n */\nRequestManager.prototype.removeSubscription = function (id, callback) {\n if (this.subscriptions.has(id)) {\n var type = this.subscriptions.get(id).subscription.options.type;\n // remove subscription first to avoid reentry\n this.subscriptions.delete(id);\n // then, try to actually unsubscribe\n this.send({\n method: type + '_unsubscribe',\n params: [id]\n }, callback);\n return;\n }\n if (typeof callback === 'function') {\n // call the callback if the subscription was already removed\n callback(null);\n }\n};\n/**\n * Should be called to reset the subscriptions\n *\n * @method reset\n *\n * @returns {boolean}\n */\nRequestManager.prototype.clearSubscriptions = function (keepIsSyncing) {\n try {\n var _this = this;\n // uninstall all subscriptions\n if (this.subscriptions.size > 0) {\n this.subscriptions.forEach(function (value, id) {\n if (!keepIsSyncing || value.name !== 'syncing')\n _this.removeSubscription(id);\n });\n }\n // reset notification callbacks etc.\n if (this.provider.reset)\n this.provider.reset();\n return true;\n }\n catch (e) {\n throw new Error(`Error while clearing subscriptions: ${e}`);\n }\n};\n/**\n * Evaluates WS close event\n *\n * @method _isCleanClose\n *\n * @param {CloseEvent | boolean} event WS close event or exception flag\n *\n * @returns {boolean}\n */\nRequestManager.prototype._isCleanCloseEvent = function (event) {\n return typeof event === 'object' && ([1000].includes(event.code) || event.wasClean === true);\n};\n/**\n * Detects Ipc close error. The node.net module emits ('close', isException)\n *\n * @method _isIpcCloseError\n *\n * @param {CloseEvent | boolean} event WS close event or exception flag\n *\n * @returns {boolean}\n */\nRequestManager.prototype._isIpcCloseError = function (event) {\n return typeof event === 'boolean' && event;\n};\n/**\n * The jsonrpc result callback for RequestManager.send\n *\n * @method _jsonrpcResultCallback\n *\n * @param {Function} callback the callback to use\n * @param {Object} payload the jsonrpc payload\n *\n * @returns {Function} return callback of form (err, result)\n *\n */\nRequestManager.prototype._jsonrpcResultCallback = function (callback, payload) {\n return function (err, result) {\n if (result && result.id && payload.id !== result.id) {\n return callback(new Error(`Wrong response id ${result.id} (expected: ${payload.id}) in ${JSON.stringify(payload)}`));\n }\n if (err) {\n return callback(err);\n }\n if (result && result.error) {\n return callback(errors.ErrorResponse(result));\n }\n if (!Jsonrpc.isValidResponse(result)) {\n return callback(errors.InvalidResponse(result));\n }\n callback(null, result.result);\n };\n};\nmodule.exports = {\n Manager: RequestManager,\n BatchManager: BatchManager\n};\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file errors.js\n * @author Fabian Vogelsteller \n * @author Marek Kotewicz \n * @date 2017\n */\n\"use strict\";\nmodule.exports = {\n ErrorResponse: function (result) {\n var message = !!result && !!result.error && !!result.error.message ? result.error.message : JSON.stringify(result);\n var data = (!!result.error && !!result.error.data) ? result.error.data : null;\n var err = new Error('Returned error: ' + message);\n err.data = data;\n return err;\n },\n InvalidNumberOfParams: function (got, expected, method) {\n return new Error('Invalid number of parameters for \"' + method + '\". Got ' + got + ' expected ' + expected + '!');\n },\n InvalidConnection: function (host, event) {\n return this.ConnectionError('CONNECTION ERROR: Couldn\\'t connect to node ' + host + '.', event);\n },\n InvalidProvider: function () {\n return new Error('Provider not set or invalid');\n },\n InvalidResponse: function (result) {\n var message = !!result && !!result.error && !!result.error.message ? result.error.message : 'Invalid JSON RPC response: ' + JSON.stringify(result);\n return new Error(message);\n },\n ConnectionTimeout: function (ms) {\n return new Error('CONNECTION TIMEOUT: timeout of ' + ms + ' ms achived');\n },\n ConnectionNotOpenError: function (event) {\n return this.ConnectionError('connection not open on send()', event);\n },\n ConnectionCloseError: function (event) {\n if (typeof event === 'object' && event.code && event.reason) {\n return this.ConnectionError('CONNECTION ERROR: The connection got closed with ' +\n 'the close code `' + event.code + '` and the following ' +\n 'reason string `' + event.reason + '`', event);\n }\n return new Error('CONNECTION ERROR: The connection closed unexpectedly');\n },\n MaxAttemptsReachedOnReconnectingError: function () {\n return new Error('Maximum number of reconnect attempts reached!');\n },\n PendingRequestsOnReconnectingError: function () {\n return new Error('CONNECTION ERROR: Provider started to reconnect before the response got received!');\n },\n ConnectionError: function (msg, event) {\n const error = new Error(msg);\n if (event) {\n error.code = event.code;\n error.reason = event.reason;\n }\n return error;\n },\n RevertInstructionError: function (reason, signature) {\n var error = new Error('Your request got reverted with the following reason string: ' + reason);\n error.reason = reason;\n error.signature = signature;\n return error;\n },\n TransactionRevertInstructionError: function (reason, signature, receipt) {\n var error = new Error('Transaction has been reverted by the EVM:\\n' + JSON.stringify(receipt, null, 2));\n error.reason = reason;\n error.signature = signature;\n error.receipt = receipt;\n return error;\n },\n TransactionError: function (message, receipt) {\n var error = new Error(message);\n error.receipt = receipt;\n return error;\n },\n NoContractAddressFoundError: function (receipt) {\n return this.TransactionError('The transaction receipt didn\\'t contain a contract address.', receipt);\n },\n ContractCodeNotStoredError: function (receipt) {\n return this.TransactionError('The contract code couldn\\'t be stored, please check your gas limit.', receipt);\n },\n TransactionRevertedWithoutReasonError: function (receipt) {\n return this.TransactionError('Transaction has been reverted by the EVM:\\n' + JSON.stringify(receipt, null, 2), receipt);\n },\n TransactionOutOfGasError: function (receipt) {\n return this.TransactionError('Transaction ran out of gas. Please provide more gas:\\n' + JSON.stringify(receipt, null, 2), receipt);\n },\n ResolverMethodMissingError: function (address, name) {\n return new Error('The resolver at ' + address + 'does not implement requested method: \"' + name + '\".');\n },\n ContractMissingABIError: function () {\n return new Error('You must provide the json interface of the contract when instantiating a contract object.');\n },\n ContractOnceRequiresCallbackError: function () {\n return new Error('Once requires a callback as the second parameter.');\n },\n ContractEventDoesNotExistError: function (eventName) {\n return new Error('Event \"' + eventName + '\" doesn\\'t exist in this contract.');\n },\n ContractReservedEventError: function (type) {\n return new Error('The event \"' + type + '\" is a reserved event name, you can\\'t use it.');\n },\n ContractMissingDeployDataError: function () {\n return new Error('No \"data\" specified in neither the given options, nor the default options.');\n },\n ContractNoAddressDefinedError: function () {\n return new Error('This contract object doesn\\'t have address set yet, please set an address first.');\n },\n ContractNoFromAddressDefinedError: function () {\n return new Error('No \"from\" address specified in neither the given options, nor the default options.');\n }\n};\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file formatters.js\n * @author Fabian Vogelsteller \n * @author Marek Kotewicz \n * @date 2017\n */\n\"use strict\";\nvar _ = require('underscore');\nvar utils = require('web3-utils');\nvar Iban = require('web3-eth-iban');\n/**\n * Will format the given storage key array values to hex strings.\n *\n * @method inputStorageKeysFormatter\n *\n * @param {Array} keys\n *\n * @returns {Array}\n */\nvar inputStorageKeysFormatter = function (keys) {\n return keys.map(utils.numberToHex);\n};\n/**\n * Will format the given proof response from the node.\n *\n * @method outputProofFormatter\n *\n * @param {object} proof\n *\n * @returns {object}\n */\nvar outputProofFormatter = function (proof) {\n proof.address = utils.toChecksumAddress(proof.address);\n proof.nonce = utils.hexToNumberString(proof.nonce);\n proof.balance = utils.hexToNumberString(proof.balance);\n return proof;\n};\n/**\n * Should the format output to a big number\n *\n * @method outputBigNumberFormatter\n *\n * @param {String|Number|BigNumber|BN} number\n *\n * @returns {BN} object\n */\nvar outputBigNumberFormatter = function (number) {\n return utils.toBN(number).toString(10);\n};\n/**\n * Returns true if the given blockNumber is 'latest', 'pending', or 'earliest.\n *\n * @method isPredefinedBlockNumber\n *\n * @param {String} blockNumber\n *\n * @returns {Boolean}\n */\nvar isPredefinedBlockNumber = function (blockNumber) {\n return blockNumber === 'latest' || blockNumber === 'pending' || blockNumber === 'earliest';\n};\n/**\n * Returns the given block number as hex string or does return the defaultBlock property of the current module\n *\n * @method inputDefaultBlockNumberFormatter\n *\n * @param {String|Number|BN|BigNumber} blockNumber\n *\n * @returns {String}\n */\nvar inputDefaultBlockNumberFormatter = function (blockNumber) {\n if (this && (blockNumber === undefined || blockNumber === null)) {\n return inputBlockNumberFormatter(this.defaultBlock);\n }\n return inputBlockNumberFormatter(blockNumber);\n};\n/**\n * Returns the given block number as hex string or the predefined block number 'latest', 'pending', 'earliest', 'genesis'\n *\n * @param {String|Number|BN|BigNumber} blockNumber\n *\n * @returns {String}\n */\nvar inputBlockNumberFormatter = function (blockNumber) {\n if (blockNumber === undefined) {\n return undefined;\n }\n if (isPredefinedBlockNumber(blockNumber)) {\n return blockNumber;\n }\n if (blockNumber === 'genesis') {\n return '0x0';\n }\n return (utils.isHexStrict(blockNumber)) ? ((_.isString(blockNumber)) ? blockNumber.toLowerCase() : blockNumber) : utils.numberToHex(blockNumber);\n};\n/**\n * Formats the input of a transaction and converts all values to HEX\n *\n * @method _txInputFormatter\n * @param {Object} transaction options\n * @returns object\n */\nvar _txInputFormatter = function (options) {\n if (options.to) { // it might be contract creation\n options.to = inputAddressFormatter(options.to);\n }\n if (options.data && options.input) {\n throw new Error('You can\\'t have \"data\" and \"input\" as properties of transactions at the same time, please use either \"data\" or \"input\" instead.');\n }\n if (!options.data && options.input) {\n options.data = options.input;\n delete options.input;\n }\n if (options.data && !options.data.startsWith('0x')) {\n options.data = '0x' + options.data;\n }\n if (options.data && !utils.isHex(options.data)) {\n throw new Error('The data field must be HEX encoded data.');\n }\n // allow both\n if (options.gas || options.gasLimit) {\n options.gas = options.gas || options.gasLimit;\n }\n ['gasPrice', 'gas', 'value', 'nonce'].filter(function (key) {\n return options[key] !== undefined;\n }).forEach(function (key) {\n options[key] = utils.numberToHex(options[key]);\n });\n return options;\n};\n/**\n * Formats the input of a transaction and converts all values to HEX\n *\n * @method inputCallFormatter\n * @param {Object} transaction options\n * @returns object\n */\nvar inputCallFormatter = function (options) {\n options = _txInputFormatter(options);\n var from = options.from || (this ? this.defaultAccount : null);\n if (from) {\n options.from = inputAddressFormatter(from);\n }\n return options;\n};\n/**\n * Formats the input of a transaction and converts all values to HEX\n *\n * @method inputTransactionFormatter\n * @param {Object} options\n * @returns object\n */\nvar inputTransactionFormatter = function (options) {\n options = _txInputFormatter(options);\n // check from, only if not number, or object\n if (!_.isNumber(options.from) && !_.isObject(options.from)) {\n options.from = options.from || (this ? this.defaultAccount : null);\n if (!options.from && !_.isNumber(options.from)) {\n throw new Error('The send transactions \"from\" field must be defined!');\n }\n options.from = inputAddressFormatter(options.from);\n }\n return options;\n};\n/**\n * Hex encodes the data passed to eth_sign and personal_sign\n *\n * @method inputSignFormatter\n * @param {String} data\n * @returns {String}\n */\nvar inputSignFormatter = function (data) {\n return (utils.isHexStrict(data)) ? data : utils.utf8ToHex(data);\n};\n/**\n * Formats the output of a transaction to its proper values\n *\n * @method outputTransactionFormatter\n * @param {Object} tx\n * @returns {Object}\n */\nvar outputTransactionFormatter = function (tx) {\n if (tx.blockNumber !== null)\n tx.blockNumber = utils.hexToNumber(tx.blockNumber);\n if (tx.transactionIndex !== null)\n tx.transactionIndex = utils.hexToNumber(tx.transactionIndex);\n tx.nonce = utils.hexToNumber(tx.nonce);\n tx.gas = utils.hexToNumber(tx.gas);\n tx.gasPrice = outputBigNumberFormatter(tx.gasPrice);\n tx.value = outputBigNumberFormatter(tx.value);\n if (tx.to && utils.isAddress(tx.to)) { // tx.to could be `0x0` or `null` while contract creation\n tx.to = utils.toChecksumAddress(tx.to);\n }\n else {\n tx.to = null; // set to `null` if invalid address\n }\n if (tx.from) {\n tx.from = utils.toChecksumAddress(tx.from);\n }\n return tx;\n};\n/**\n * Formats the output of a transaction receipt to its proper values\n *\n * @method outputTransactionReceiptFormatter\n * @param {Object} receipt\n * @returns {Object}\n */\nvar outputTransactionReceiptFormatter = function (receipt) {\n if (typeof receipt !== 'object') {\n throw new Error('Received receipt is invalid: ' + receipt);\n }\n if (receipt.blockNumber !== null)\n receipt.blockNumber = utils.hexToNumber(receipt.blockNumber);\n if (receipt.transactionIndex !== null)\n receipt.transactionIndex = utils.hexToNumber(receipt.transactionIndex);\n receipt.cumulativeGasUsed = utils.hexToNumber(receipt.cumulativeGasUsed);\n receipt.gasUsed = utils.hexToNumber(receipt.gasUsed);\n if (_.isArray(receipt.logs)) {\n receipt.logs = receipt.logs.map(outputLogFormatter);\n }\n if (receipt.contractAddress) {\n receipt.contractAddress = utils.toChecksumAddress(receipt.contractAddress);\n }\n if (typeof receipt.status !== 'undefined' && receipt.status !== null) {\n receipt.status = Boolean(parseInt(receipt.status));\n }\n return receipt;\n};\n/**\n * Formats the output of a block to its proper values\n *\n * @method outputBlockFormatter\n * @param {Object} block\n * @returns {Object}\n */\nvar outputBlockFormatter = function (block) {\n // transform to number\n block.gasLimit = utils.hexToNumber(block.gasLimit);\n block.gasUsed = utils.hexToNumber(block.gasUsed);\n block.size = utils.hexToNumber(block.size);\n block.timestamp = utils.hexToNumber(block.timestamp);\n if (block.number !== null)\n block.number = utils.hexToNumber(block.number);\n if (block.difficulty)\n block.difficulty = outputBigNumberFormatter(block.difficulty);\n if (block.totalDifficulty)\n block.totalDifficulty = outputBigNumberFormatter(block.totalDifficulty);\n if (_.isArray(block.transactions)) {\n block.transactions.forEach(function (item) {\n if (!_.isString(item))\n return outputTransactionFormatter(item);\n });\n }\n if (block.miner)\n block.miner = utils.toChecksumAddress(block.miner);\n return block;\n};\n/**\n * Formats the input of a log\n *\n * @method inputLogFormatter\n * @param {Object} log object\n * @returns {Object} log\n */\nvar inputLogFormatter = function (options) {\n var toTopic = function (value) {\n if (value === null || typeof value === 'undefined')\n return null;\n value = String(value);\n if (value.indexOf('0x') === 0)\n return value;\n else\n return utils.fromUtf8(value);\n };\n if (options.fromBlock || options.fromBlock === 0)\n options.fromBlock = inputBlockNumberFormatter(options.fromBlock);\n if (options.toBlock || options.toBlock === 0)\n options.toBlock = inputBlockNumberFormatter(options.toBlock);\n // make sure topics, get converted to hex\n options.topics = options.topics || [];\n options.topics = options.topics.map(function (topic) {\n return (_.isArray(topic)) ? topic.map(toTopic) : toTopic(topic);\n });\n toTopic = null;\n if (options.address) {\n options.address = (_.isArray(options.address)) ? options.address.map(function (addr) {\n return inputAddressFormatter(addr);\n }) : inputAddressFormatter(options.address);\n }\n return options;\n};\n/**\n * Formats the output of a log\n *\n * @method outputLogFormatter\n * @param {Object} log object\n * @returns {Object} log\n */\nvar outputLogFormatter = function (log) {\n // generate a custom log id\n if (typeof log.blockHash === 'string' &&\n typeof log.transactionHash === 'string' &&\n typeof log.logIndex === 'string') {\n var shaId = utils.sha3(log.blockHash.replace('0x', '') + log.transactionHash.replace('0x', '') + log.logIndex.replace('0x', ''));\n log.id = 'log_' + shaId.replace('0x', '').substr(0, 8);\n }\n else if (!log.id) {\n log.id = null;\n }\n if (log.blockNumber !== null)\n log.blockNumber = utils.hexToNumber(log.blockNumber);\n if (log.transactionIndex !== null)\n log.transactionIndex = utils.hexToNumber(log.transactionIndex);\n if (log.logIndex !== null)\n log.logIndex = utils.hexToNumber(log.logIndex);\n if (log.address) {\n log.address = utils.toChecksumAddress(log.address);\n }\n return log;\n};\n/**\n * Formats the input of a whisper post and converts all values to HEX\n *\n * @method inputPostFormatter\n * @param {Object} transaction object\n * @returns {Object}\n */\nvar inputPostFormatter = function (post) {\n // post.payload = utils.toHex(post.payload);\n if (post.ttl)\n post.ttl = utils.numberToHex(post.ttl);\n if (post.workToProve)\n post.workToProve = utils.numberToHex(post.workToProve);\n if (post.priority)\n post.priority = utils.numberToHex(post.priority);\n // fallback\n if (!_.isArray(post.topics)) {\n post.topics = post.topics ? [post.topics] : [];\n }\n // format the following options\n post.topics = post.topics.map(function (topic) {\n // convert only if not hex\n return (topic.indexOf('0x') === 0) ? topic : utils.fromUtf8(topic);\n });\n return post;\n};\n/**\n * Formats the output of a received post message\n *\n * @method outputPostFormatter\n * @param {Object}\n * @returns {Object}\n */\nvar outputPostFormatter = function (post) {\n post.expiry = utils.hexToNumber(post.expiry);\n post.sent = utils.hexToNumber(post.sent);\n post.ttl = utils.hexToNumber(post.ttl);\n post.workProved = utils.hexToNumber(post.workProved);\n // post.payloadRaw = post.payload;\n // post.payload = utils.hexToAscii(post.payload);\n // if (utils.isJson(post.payload)) {\n // post.payload = JSON.parse(post.payload);\n // }\n // format the following options\n if (!post.topics) {\n post.topics = [];\n }\n post.topics = post.topics.map(function (topic) {\n return utils.toUtf8(topic);\n });\n return post;\n};\nvar inputAddressFormatter = function (address) {\n var iban = new Iban(address);\n if (iban.isValid() && iban.isDirect()) {\n return iban.toAddress().toLowerCase();\n }\n else if (utils.isAddress(address)) {\n return '0x' + address.toLowerCase().replace('0x', '');\n }\n throw new Error(`Provided address ${address} is invalid, the capitalization checksum test failed, or it's an indirect IBAN address which can't be converted.`);\n};\nvar outputSyncingFormatter = function (result) {\n result.startingBlock = utils.hexToNumber(result.startingBlock);\n result.currentBlock = utils.hexToNumber(result.currentBlock);\n result.highestBlock = utils.hexToNumber(result.highestBlock);\n if (result.knownStates) {\n result.knownStates = utils.hexToNumber(result.knownStates);\n result.pulledStates = utils.hexToNumber(result.pulledStates);\n }\n return result;\n};\nmodule.exports = {\n inputDefaultBlockNumberFormatter: inputDefaultBlockNumberFormatter,\n inputBlockNumberFormatter: inputBlockNumberFormatter,\n inputCallFormatter: inputCallFormatter,\n inputTransactionFormatter: inputTransactionFormatter,\n inputAddressFormatter: inputAddressFormatter,\n inputPostFormatter: inputPostFormatter,\n inputLogFormatter: inputLogFormatter,\n inputSignFormatter: inputSignFormatter,\n inputStorageKeysFormatter: inputStorageKeysFormatter,\n outputProofFormatter: outputProofFormatter,\n outputBigNumberFormatter: outputBigNumberFormatter,\n outputTransactionFormatter: outputTransactionFormatter,\n outputTransactionReceiptFormatter: outputTransactionReceiptFormatter,\n outputBlockFormatter: outputBlockFormatter,\n outputLogFormatter: outputLogFormatter,\n outputPostFormatter: outputPostFormatter,\n outputSyncingFormatter: outputSyncingFormatter\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar numberToBN = require('number-to-bn');\n\nvar zero = new BN(0);\nvar negative1 = new BN(-1);\n\n// complete ethereum unit map\nvar unitMap = {\n 'noether': '0', // eslint-disable-line\n 'wei': '1', // eslint-disable-line\n 'kwei': '1000', // eslint-disable-line\n 'Kwei': '1000', // eslint-disable-line\n 'babbage': '1000', // eslint-disable-line\n 'femtoether': '1000', // eslint-disable-line\n 'mwei': '1000000', // eslint-disable-line\n 'Mwei': '1000000', // eslint-disable-line\n 'lovelace': '1000000', // eslint-disable-line\n 'picoether': '1000000', // eslint-disable-line\n 'gwei': '1000000000', // eslint-disable-line\n 'Gwei': '1000000000', // eslint-disable-line\n 'shannon': '1000000000', // eslint-disable-line\n 'nanoether': '1000000000', // eslint-disable-line\n 'nano': '1000000000', // eslint-disable-line\n 'szabo': '1000000000000', // eslint-disable-line\n 'microether': '1000000000000', // eslint-disable-line\n 'micro': '1000000000000', // eslint-disable-line\n 'finney': '1000000000000000', // eslint-disable-line\n 'milliether': '1000000000000000', // eslint-disable-line\n 'milli': '1000000000000000', // eslint-disable-line\n 'ether': '1000000000000000000', // eslint-disable-line\n 'kether': '1000000000000000000000', // eslint-disable-line\n 'grand': '1000000000000000000000', // eslint-disable-line\n 'mether': '1000000000000000000000000', // eslint-disable-line\n 'gether': '1000000000000000000000000000', // eslint-disable-line\n 'tether': '1000000000000000000000000000000' };\n\n/**\n * Returns value of unit in Wei\n *\n * @method getValueOfUnit\n * @param {String} unit the unit to convert to, default ether\n * @returns {BigNumber} value of the unit (in Wei)\n * @throws error if the unit is not correct:w\n */\nfunction getValueOfUnit(unitInput) {\n var unit = unitInput ? unitInput.toLowerCase() : 'ether';\n var unitValue = unitMap[unit]; // eslint-disable-line\n\n if (typeof unitValue !== 'string') {\n throw new Error('[ethjs-unit] the unit provided ' + unitInput + ' doesn\\'t exists, please use the one of the following units ' + JSON.stringify(unitMap, null, 2));\n }\n\n return new BN(unitValue, 10);\n}\n\nfunction numberToString(arg) {\n if (typeof arg === 'string') {\n if (!arg.match(/^-?[0-9.]+$/)) {\n throw new Error('while converting number to string, invalid number value \\'' + arg + '\\', should be a number matching (^-?[0-9.]+).');\n }\n return arg;\n } else if (typeof arg === 'number') {\n return String(arg);\n } else if (typeof arg === 'object' && arg.toString && (arg.toTwos || arg.dividedToIntegerBy)) {\n if (arg.toPrecision) {\n return String(arg.toPrecision());\n } else {\n // eslint-disable-line\n return arg.toString(10);\n }\n }\n throw new Error('while converting number to string, invalid number value \\'' + arg + '\\' type ' + typeof arg + '.');\n}\n\nfunction fromWei(weiInput, unit, optionsInput) {\n var wei = numberToBN(weiInput); // eslint-disable-line\n var negative = wei.lt(zero); // eslint-disable-line\n var base = getValueOfUnit(unit);\n var baseLength = unitMap[unit].length - 1 || 1;\n var options = optionsInput || {};\n\n if (negative) {\n wei = wei.mul(negative1);\n }\n\n var fraction = wei.mod(base).toString(10); // eslint-disable-line\n\n while (fraction.length < baseLength) {\n fraction = '0' + fraction;\n }\n\n if (!options.pad) {\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n }\n\n var whole = wei.div(base).toString(10); // eslint-disable-line\n\n if (options.commify) {\n whole = whole.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n var value = '' + whole + (fraction == '0' ? '' : '.' + fraction); // eslint-disable-line\n\n if (negative) {\n value = '-' + value;\n }\n\n return value;\n}\n\nfunction toWei(etherInput, unit) {\n var ether = numberToString(etherInput); // eslint-disable-line\n var base = getValueOfUnit(unit);\n var baseLength = unitMap[unit].length - 1 || 1;\n\n // Is it negative?\n var negative = ether.substring(0, 1) === '-'; // eslint-disable-line\n if (negative) {\n ether = ether.substring(1);\n }\n\n if (ether === '.') {\n throw new Error('[ethjs-unit] while converting number ' + etherInput + ' to wei, invalid value');\n }\n\n // Split it into a whole and fractional part\n var comps = ether.split('.'); // eslint-disable-line\n if (comps.length > 2) {\n throw new Error('[ethjs-unit] while converting number ' + etherInput + ' to wei, too many decimal points');\n }\n\n var whole = comps[0],\n fraction = comps[1]; // eslint-disable-line\n\n if (!whole) {\n whole = '0';\n }\n if (!fraction) {\n fraction = '0';\n }\n if (fraction.length > baseLength) {\n throw new Error('[ethjs-unit] while converting number ' + etherInput + ' to wei, too many decimal places');\n }\n\n while (fraction.length < baseLength) {\n fraction += '0';\n }\n\n whole = new BN(whole);\n fraction = new BN(fraction);\n var wei = whole.mul(base).add(fraction); // eslint-disable-line\n\n if (negative) {\n wei = wei.mul(negative1);\n }\n\n return new BN(wei.toString(10), 10);\n}\n\nmodule.exports = {\n unitMap: unitMap,\n numberToString: numberToString,\n getValueOfUnit: getValueOfUnit,\n fromWei: fromWei,\n toWei: toWei\n};","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var BN = require('bn.js');\nvar stripHexPrefix = require('strip-hex-prefix');\n\n/**\n * Returns a BN object, converts a number value to a BN\n * @param {String|Number|Object} `arg` input a string number, hex string number, number, BigNumber or BN object\n * @return {Object} `output` BN object of the number\n * @throws if the argument is not an array, object that isn't a bignumber, not a string number or number\n */\nmodule.exports = function numberToBN(arg) {\n if (typeof arg === 'string' || typeof arg === 'number') {\n var multiplier = new BN(1); // eslint-disable-line\n var formattedString = String(arg).toLowerCase().trim();\n var isHexPrefixed = formattedString.substr(0, 2) === '0x' || formattedString.substr(0, 3) === '-0x';\n var stringArg = stripHexPrefix(formattedString); // eslint-disable-line\n if (stringArg.substr(0, 1) === '-') {\n stringArg = stripHexPrefix(stringArg.slice(1));\n multiplier = new BN(-1, 10);\n }\n stringArg = stringArg === '' ? '0' : stringArg;\n\n if ((!stringArg.match(/^-?[0-9]+$/) && stringArg.match(/^[0-9A-Fa-f]+$/))\n || stringArg.match(/^[a-fA-F]+$/)\n || (isHexPrefixed === true && stringArg.match(/^[0-9A-Fa-f]+$/))) {\n return new BN(stringArg, 16).mul(multiplier);\n }\n\n if ((stringArg.match(/^-?[0-9]+$/) || stringArg === '') && isHexPrefixed === false) {\n return new BN(stringArg, 10).mul(multiplier);\n }\n } else if (typeof arg === 'object' && arg.toString && (!arg.pop && !arg.push)) {\n if (arg.toString(10).match(/^-?[0-9]+$/) && (arg.mul || arg.dividedToIntegerBy)) {\n return new BN(arg.toString(10), 10);\n }\n }\n\n throw new Error('[number-to-bn] while converting number ' + JSON.stringify(arg) + ' to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.');\n}\n","/**\n * Returns a `Boolean` on whether or not the a `String` starts with '0x'\n * @param {String} str the string input value\n * @return {Boolean} a boolean if it is or is not hex prefixed\n * @throws if the str input is not a string\n */\nmodule.exports = function isHexPrefixed(str) {\n if (typeof str !== 'string') {\n throw new Error(\"[is-hex-prefixed] value must be type 'string', is currently type \" + (typeof str) + \", while checking isHexPrefixed.\");\n }\n\n return str.slice(0, 2) === '0x';\n}\n","var BN = require('bn.js');\nvar stripHexPrefix = require('strip-hex-prefix');\n\n/**\n * Returns a BN object, converts a number value to a BN\n * @param {String|Number|Object} `arg` input a string number, hex string number, number, BigNumber or BN object\n * @return {Object} `output` BN object of the number\n * @throws if the argument is not an array, object that isn't a bignumber, not a string number or number\n */\nmodule.exports = function numberToBN(arg) {\n if (typeof arg === 'string' || typeof arg === 'number') {\n var multiplier = new BN(1); // eslint-disable-line\n var formattedString = String(arg).toLowerCase().trim();\n var isHexPrefixed = formattedString.substr(0, 2) === '0x' || formattedString.substr(0, 3) === '-0x';\n var stringArg = stripHexPrefix(formattedString); // eslint-disable-line\n if (stringArg.substr(0, 1) === '-') {\n stringArg = stripHexPrefix(stringArg.slice(1));\n multiplier = new BN(-1, 10);\n }\n stringArg = stringArg === '' ? '0' : stringArg;\n\n if ((!stringArg.match(/^-?[0-9]+$/) && stringArg.match(/^[0-9A-Fa-f]+$/))\n || stringArg.match(/^[a-fA-F]+$/)\n || (isHexPrefixed === true && stringArg.match(/^[0-9A-Fa-f]+$/))) {\n return new BN(stringArg, 16).mul(multiplier);\n }\n\n if ((stringArg.match(/^-?[0-9]+$/) || stringArg === '') && isHexPrefixed === false) {\n return new BN(stringArg, 10).mul(multiplier);\n }\n } else if (typeof arg === 'object' && arg.toString && (!arg.pop && !arg.push)) {\n if (arg.toString(10).match(/^-?[0-9]+$/) && (arg.mul || arg.dividedToIntegerBy)) {\n return new BN(arg.toString(10), 10);\n }\n }\n\n throw new Error('[number-to-bn] while converting number ' + JSON.stringify(arg) + ' to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.');\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buf' + 'fer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*! https://mths.be/utf8js v3.0.0 by @mathias */\n;(function(root) {\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\troot.version = '3.0.0';\n\troot.encode = utf8encode;\n\troot.decode = utf8decode;\n\n}(typeof exports === 'undefined' ? this.utf8 = {} : exports));\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst utils_1 = require(\"./utils\");\r\n/**\r\n * Returns true if the bloom is a valid bloom\r\n * @param bloom The bloom\r\n */\r\nfunction isBloom(bloom) {\r\n if (typeof bloom !== 'string') {\r\n return false;\r\n }\r\n if (!/^(0x)?[0-9a-f]{512}$/i.test(bloom)) {\r\n return false;\r\n }\r\n if (/^(0x)?[0-9a-f]{512}$/.test(bloom) ||\r\n /^(0x)?[0-9A-F]{512}$/.test(bloom)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexports.isBloom = isBloom;\r\n/**\r\n * Returns true if the value is part of the given bloom\r\n * note: false positives are possible.\r\n * @param bloom encoded bloom\r\n * @param value The value\r\n */\r\nfunction isInBloom(bloom, value) {\r\n if (typeof value === 'object' && value.constructor === Uint8Array) {\r\n value = utils_1.bytesToHex(value);\r\n }\r\n const hash = utils_1.keccak256(value).replace('0x', '');\r\n for (let i = 0; i < 12; i += 4) {\r\n // calculate bit position in bloom filter that must be active\r\n const bitpos = ((parseInt(hash.substr(i, 2), 16) << 8) +\r\n parseInt(hash.substr(i + 2, 2), 16)) &\r\n 2047;\r\n // test if bitpos in bloom is active\r\n const code = codePointToInt(bloom.charCodeAt(bloom.length - 1 - Math.floor(bitpos / 4)));\r\n const offset = 1 << bitpos % 4;\r\n if ((code & offset) !== offset) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexports.isInBloom = isInBloom;\r\n/**\r\n * Code points to int\r\n * @param codePoint The code point\r\n */\r\nfunction codePointToInt(codePoint) {\r\n if (codePoint >= 48 && codePoint <= 57) {\r\n /* ['0'..'9'] -> [0..9] */\r\n return codePoint - 48;\r\n }\r\n if (codePoint >= 65 && codePoint <= 70) {\r\n /* ['A'..'F'] -> [10..15] */\r\n return codePoint - 55;\r\n }\r\n if (codePoint >= 97 && codePoint <= 102) {\r\n /* ['a'..'f'] -> [10..15] */\r\n return codePoint - 87;\r\n }\r\n throw new Error('invalid bloom');\r\n}\r\n/**\r\n * Returns true if the ethereum users address is part of the given bloom.\r\n * note: false positives are possible.\r\n * @param bloom encoded bloom\r\n * @param address the address to test\r\n */\r\nfunction isUserEthereumAddressInBloom(bloom, ethereumAddress) {\r\n if (!isBloom(bloom)) {\r\n throw new Error('Invalid bloom given');\r\n }\r\n if (!isAddress(ethereumAddress)) {\r\n throw new Error(`Invalid ethereum address given: \"${ethereumAddress}\"`);\r\n }\r\n // you have to pad the ethereum address to 32 bytes\r\n // else the bloom filter does not work\r\n // this is only if your matching the USERS\r\n // ethereum address. Contract address do not need this\r\n // hence why we have 2 methods\r\n // (0x is not in the 2nd parameter of padleft so 64 chars is fine)\r\n const address = utils_1.padLeft(ethereumAddress, 64);\r\n return isInBloom(bloom, address);\r\n}\r\nexports.isUserEthereumAddressInBloom = isUserEthereumAddressInBloom;\r\n/**\r\n * Returns true if the contract address is part of the given bloom.\r\n * note: false positives are possible.\r\n * @param bloom encoded bloom\r\n * @param contractAddress the contract address to test\r\n */\r\nfunction isContractAddressInBloom(bloom, contractAddress) {\r\n if (!isBloom(bloom)) {\r\n throw new Error('Invalid bloom given');\r\n }\r\n if (!isAddress(contractAddress)) {\r\n throw new Error(`Invalid contract address given: \"${contractAddress}\"`);\r\n }\r\n return isInBloom(bloom, contractAddress);\r\n}\r\nexports.isContractAddressInBloom = isContractAddressInBloom;\r\n/**\r\n * Returns true if the topic is part of the given bloom.\r\n * note: false positives are possible.\r\n * @param bloom encoded bloom\r\n * @param topic the topic encoded hex\r\n */\r\nfunction isTopicInBloom(bloom, topic) {\r\n if (!isBloom(bloom)) {\r\n throw new Error('Invalid bloom given');\r\n }\r\n if (!isTopic(topic)) {\r\n throw new Error('Invalid topic');\r\n }\r\n return isInBloom(bloom, topic);\r\n}\r\nexports.isTopicInBloom = isTopicInBloom;\r\n/**\r\n * Checks if its a valid topic\r\n * @param topic encoded hex topic\r\n */\r\nfunction isTopic(topic) {\r\n if (typeof topic !== 'string') {\r\n return false;\r\n }\r\n if (!/^(0x)?[0-9a-f]{64}$/i.test(topic)) {\r\n return false;\r\n }\r\n else if (/^(0x)?[0-9a-f]{64}$/.test(topic) ||\r\n /^(0x)?[0-9A-F]{64}$/.test(topic)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexports.isTopic = isTopic;\r\n/**\r\n * Is valid address\r\n * @param address The address\r\n */\r\nfunction isAddress(address) {\r\n if (typeof address !== 'string') {\r\n return false;\r\n }\r\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\r\n return true;\r\n }\r\n if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexports.isAddress = isAddress;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst sha3 = require(\"js-sha3\");\r\n/**\r\n * Keccak256 hash\r\n * @param data The data\r\n */\r\nfunction keccak256(data) {\r\n return '0x' + sha3.keccak_256(toByteArray(data));\r\n}\r\nexports.keccak256 = keccak256;\r\n/**\r\n * Adding padding to string on the left\r\n * @param value The value\r\n * @param chars The chars\r\n */\r\nexports.padLeft = (value, chars) => {\r\n const hasPrefix = /^0x/i.test(value) || typeof value === 'number';\r\n value = value.toString().replace(/^0x/i, '');\r\n const padding = chars - value.length + 1 >= 0 ? chars - value.length + 1 : 0;\r\n return (hasPrefix ? '0x' : '') + new Array(padding).join('0') + value;\r\n};\r\n/**\r\n * Convert bytes to hex\r\n * @param bytes The bytes\r\n */\r\nfunction bytesToHex(bytes) {\r\n let hex = [];\r\n for (let i = 0; i < bytes.length; i++) {\r\n hex.push((bytes[i] >>> 4).toString(16));\r\n hex.push((bytes[i] & 0xf).toString(16));\r\n }\r\n return `0x${hex.join('').replace(/^0+/, '')}`;\r\n}\r\nexports.bytesToHex = bytesToHex;\r\n/**\r\n * To byte array\r\n * @param value The value\r\n */\r\nfunction toByteArray(value) {\r\n if (value == null) {\r\n throw new Error('cannot convert null value to array');\r\n }\r\n if (typeof value === 'string') {\r\n let match = value.match(/^(0x)?[0-9a-fA-F]*$/);\r\n if (!match) {\r\n throw new Error('invalid hexidecimal string');\r\n }\r\n if (match[1] !== '0x') {\r\n throw new Error('hex string must have 0x prefix');\r\n }\r\n value = value.substring(2);\r\n if (value.length % 2) {\r\n value = '0' + value;\r\n }\r\n const result = [];\r\n for (let i = 0; i < value.length; i += 2) {\r\n result.push(parseInt(value.substr(i, 2), 16));\r\n }\r\n return addSlice(new Uint8Array(result));\r\n }\r\n if (isByteArray(value)) {\r\n return addSlice(new Uint8Array(value));\r\n }\r\n throw new Error('invalid arrayify value');\r\n}\r\nexports.toByteArray = toByteArray;\r\n/**\r\n * Is byte array\r\n * @param value The value\r\n */\r\nfunction isByteArray(value) {\r\n if (!value ||\r\n parseInt(String(value.length)) != value.length ||\r\n typeof value === 'string') {\r\n return false;\r\n }\r\n for (let i = 0; i < value.length; i++) {\r\n const v = value[i];\r\n if (v < 0 || v >= 256 || parseInt(String(v)) != v) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Add slice to array\r\n * @param array The array\r\n */\r\nfunction addSlice(array) {\r\n if (array.slice) {\r\n return array;\r\n }\r\n array.slice = function () {\r\n const args = Array.prototype.slice.call(arguments);\r\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\r\n };\r\n return array;\r\n}\r\n","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file soliditySha3.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\nvar _ = require('underscore');\nvar BN = require('bn.js');\nvar utils = require('./utils.js');\nvar _elementaryName = function (name) {\n /*jshint maxcomplexity:false */\n if (name.startsWith('int[')) {\n return 'int256' + name.slice(3);\n }\n else if (name === 'int') {\n return 'int256';\n }\n else if (name.startsWith('uint[')) {\n return 'uint256' + name.slice(4);\n }\n else if (name === 'uint') {\n return 'uint256';\n }\n else if (name.startsWith('fixed[')) {\n return 'fixed128x128' + name.slice(5);\n }\n else if (name === 'fixed') {\n return 'fixed128x128';\n }\n else if (name.startsWith('ufixed[')) {\n return 'ufixed128x128' + name.slice(6);\n }\n else if (name === 'ufixed') {\n return 'ufixed128x128';\n }\n return name;\n};\n// Parse N from type\nvar _parseTypeN = function (type) {\n var typesize = /^\\D+(\\d+).*$/.exec(type);\n return typesize ? parseInt(typesize[1], 10) : null;\n};\n// Parse N from type[]\nvar _parseTypeNArray = function (type) {\n var arraySize = /^\\D+\\d*\\[(\\d+)\\]$/.exec(type);\n return arraySize ? parseInt(arraySize[1], 10) : null;\n};\nvar _parseNumber = function (arg) {\n var type = typeof arg;\n if (type === 'string') {\n if (utils.isHexStrict(arg)) {\n return new BN(arg.replace(/0x/i, ''), 16);\n }\n else {\n return new BN(arg, 10);\n }\n }\n else if (type === 'number') {\n return new BN(arg);\n }\n else if (utils.isBigNumber(arg)) {\n return new BN(arg.toString(10));\n }\n else if (utils.isBN(arg)) {\n return arg;\n }\n else {\n throw new Error(arg + ' is not a number');\n }\n};\nvar _solidityPack = function (type, value, arraySize) {\n /*jshint maxcomplexity:false */\n var size, num;\n type = _elementaryName(type);\n if (type === 'bytes') {\n if (value.replace(/^0x/i, '').length % 2 !== 0) {\n throw new Error('Invalid bytes characters ' + value.length);\n }\n return value;\n }\n else if (type === 'string') {\n return utils.utf8ToHex(value);\n }\n else if (type === 'bool') {\n return value ? '01' : '00';\n }\n else if (type.startsWith('address')) {\n if (arraySize) {\n size = 64;\n }\n else {\n size = 40;\n }\n if (!utils.isAddress(value)) {\n throw new Error(value + ' is not a valid address, or the checksum is invalid.');\n }\n return utils.leftPad(value.toLowerCase(), size);\n }\n size = _parseTypeN(type);\n if (type.startsWith('bytes')) {\n if (!size) {\n throw new Error('bytes[] not yet supported in solidity');\n }\n // must be 32 byte slices when in an array\n if (arraySize) {\n size = 32;\n }\n if (size < 1 || size > 32 || size < value.replace(/^0x/i, '').length / 2) {\n throw new Error('Invalid bytes' + size + ' for ' + value);\n }\n return utils.rightPad(value, size * 2);\n }\n else if (type.startsWith('uint')) {\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint' + size + ' size');\n }\n num = _parseNumber(value);\n if (num.bitLength() > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + num.bitLength());\n }\n if (num.lt(new BN(0))) {\n throw new Error('Supplied uint ' + num.toString() + ' is negative');\n }\n return size ? utils.leftPad(num.toString('hex'), size / 8 * 2) : num;\n }\n else if (type.startsWith('int')) {\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int' + size + ' size');\n }\n num = _parseNumber(value);\n if (num.bitLength() > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + num.bitLength());\n }\n if (num.lt(new BN(0))) {\n return num.toTwos(size).toString('hex');\n }\n else {\n return size ? utils.leftPad(num.toString('hex'), size / 8 * 2) : num;\n }\n }\n else {\n // FIXME: support all other types\n throw new Error('Unsupported or invalid type: ' + type);\n }\n};\nvar _processSolidityEncodePackedArgs = function (arg) {\n /*jshint maxcomplexity:false */\n if (_.isArray(arg)) {\n throw new Error('Autodetection of array types is not supported.');\n }\n var type, value = '';\n var hexArg, arraySize;\n // if type is given\n if (_.isObject(arg) && (arg.hasOwnProperty('v') || arg.hasOwnProperty('t') || arg.hasOwnProperty('value') || arg.hasOwnProperty('type'))) {\n type = arg.hasOwnProperty('t') ? arg.t : arg.type;\n value = arg.hasOwnProperty('v') ? arg.v : arg.value;\n // otherwise try to guess the type\n }\n else {\n type = utils.toHex(arg, true);\n value = utils.toHex(arg);\n if (!type.startsWith('int') && !type.startsWith('uint')) {\n type = 'bytes';\n }\n }\n if ((type.startsWith('int') || type.startsWith('uint')) && typeof value === 'string' && !/^(-)?0x/i.test(value)) {\n value = new BN(value);\n }\n // get the array size\n if (_.isArray(value)) {\n arraySize = _parseTypeNArray(type);\n if (arraySize && value.length !== arraySize) {\n throw new Error(type + ' is not matching the given array ' + JSON.stringify(value));\n }\n else {\n arraySize = value.length;\n }\n }\n if (_.isArray(value)) {\n hexArg = value.map(function (val) {\n return _solidityPack(type, val, arraySize).toString('hex').replace('0x', '');\n });\n return hexArg.join('');\n }\n else {\n hexArg = _solidityPack(type, value, arraySize);\n return hexArg.toString('hex').replace('0x', '');\n }\n};\n/**\n * Hashes solidity values to a sha3 hash using keccak 256\n *\n * @method soliditySha3\n * @return {Object} the sha3\n */\nvar soliditySha3 = function () {\n /*jshint maxcomplexity:false */\n var args = Array.prototype.slice.call(arguments);\n var hexArgs = _.map(args, _processSolidityEncodePackedArgs);\n // console.log(args, hexArgs);\n // console.log('0x'+ hexArgs.join(''));\n return utils.sha3('0x' + hexArgs.join(''));\n};\n/**\n * Hashes solidity values to a sha3 hash using keccak 256 but does return the hash of value `null` instead of `null`\n *\n * @method soliditySha3Raw\n * @return {Object} the sha3\n */\nvar soliditySha3Raw = function () {\n return utils.sha3Raw('0x' + _.map(Array.prototype.slice.call(arguments), _processSolidityEncodePackedArgs).join(''));\n};\n/**\n * Encode packed args to hex\n *\n * @method encodePacked\n * @return {String} the hex encoded arguments\n */\nvar encodePacked = function () {\n /*jshint maxcomplexity:false */\n var args = Array.prototype.slice.call(arguments);\n var hexArgs = _.map(args, _processSolidityEncodePackedArgs);\n return '0x' + hexArgs.join('').toLowerCase();\n};\nmodule.exports = {\n soliditySha3: soliditySha3,\n soliditySha3Raw: soliditySha3Raw,\n encodePacked: encodePacked\n};\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/**\n * @file batch.js\n * @author Marek Kotewicz \n * @date 2015\n */\n\"use strict\";\nvar Jsonrpc = require('./jsonrpc');\nvar errors = require('web3-core-helpers').errors;\nvar Batch = function (requestManager) {\n this.requestManager = requestManager;\n this.requests = [];\n};\n/**\n * Should be called to add create new request to batch request\n *\n * @method add\n * @param {Object} jsonrpc requet object\n */\nBatch.prototype.add = function (request) {\n this.requests.push(request);\n};\n/**\n * Should be called to execute batch request\n *\n * @method execute\n */\nBatch.prototype.execute = function () {\n var requests = this.requests;\n this.requestManager.sendBatch(requests, function (err, results) {\n results = results || [];\n requests.map(function (request, index) {\n return results[index] || {};\n }).forEach(function (result, index) {\n if (requests[index].callback) {\n if (result && result.error) {\n return requests[index].callback(errors.ErrorResponse(result));\n }\n if (!Jsonrpc.isValidResponse(result)) {\n return requests[index].callback(errors.InvalidResponse(result));\n }\n try {\n requests[index].callback(null, requests[index].format ? requests[index].format(result.result) : result.result);\n }\n catch (err) {\n requests[index].callback(err);\n }\n }\n });\n });\n};\nmodule.exports = Batch;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file givenProvider.js\n * @author Fabian Vogelsteller \n * @date 2017\n */\n\"use strict\";\nvar givenProvider = null;\n// ADD GIVEN PROVIDER\n/* jshint ignore:start */\nvar global;\ntry {\n global = Function('return this')();\n}\ncatch (e) {\n global = window;\n}\n// EIP-1193: window.ethereum\nif (typeof global.ethereum !== 'undefined') {\n givenProvider = global.ethereum;\n // Legacy web3.currentProvider\n}\nelse if (typeof global.web3 !== 'undefined' && global.web3.currentProvider) {\n if (global.web3.currentProvider.sendAsync) {\n global.web3.currentProvider.send = global.web3.currentProvider.sendAsync;\n delete global.web3.currentProvider.sendAsync;\n }\n // if connection is 'ipcProviderWrapper', add subscription support\n if (!global.web3.currentProvider.on &&\n global.web3.currentProvider.connection &&\n global.web3.currentProvider.connection.constructor.name === 'ipcProviderWrapper') {\n global.web3.currentProvider.on = function (type, callback) {\n if (typeof callback !== 'function')\n throw new Error('The second parameter callback must be a function.');\n switch (type) {\n case 'data':\n this.connection.on('data', function (data) {\n var result = '';\n data = data.toString();\n try {\n result = JSON.parse(data);\n }\n catch (e) {\n return callback(new Error('Couldn\\'t parse response data' + data));\n }\n // notification\n if (!result.id && result.method.indexOf('_subscription') !== -1) {\n callback(null, result);\n }\n });\n break;\n default:\n this.connection.on(type, callback);\n break;\n }\n };\n }\n givenProvider = global.web3.currentProvider;\n}\n/* jshint ignore:end */\nmodule.exports = givenProvider;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n */\n/**\n * @file WebsocketProvider.js\n * @authors: Samuel Furter , Fabian Vogelsteller \n * @date 2019\n */\n'use strict';\nvar EventEmitter = require('eventemitter3');\nvar helpers = require('./helpers.js');\nvar errors = require('web3-core-helpers').errors;\nvar Ws = require('websocket').w3cwebsocket;\n/**\n * @param {string} url\n * @param {Object} options\n *\n * @constructor\n */\nvar WebsocketProvider = function WebsocketProvider(url, options) {\n EventEmitter.call(this);\n options = options || {};\n this.url = url;\n this._customTimeout = options.timeout || 1000 * 15;\n this.headers = options.headers || {};\n this.protocol = options.protocol || undefined;\n this.reconnectOptions = Object.assign({\n auto: false,\n delay: 5000,\n maxAttempts: false,\n onTimeout: false\n }, options.reconnect);\n this.clientConfig = options.clientConfig || undefined; // Allow a custom client configuration\n this.requestOptions = options.requestOptions || undefined; // Allow a custom request options (https://github.com/theturtle32/WebSocket-Node/blob/master/docs/WebSocketClient.md#connectrequesturl-requestedprotocols-origin-headers-requestoptions)\n this.DATA = 'data';\n this.CLOSE = 'close';\n this.ERROR = 'error';\n this.CONNECT = 'connect';\n this.RECONNECT = 'reconnect';\n this.connection = null;\n this.requestQueue = new Map();\n this.responseQueue = new Map();\n this.reconnectAttempts = 0;\n this.reconnecting = false;\n // The w3cwebsocket implementation does not support Basic Auth\n // username/password in the URL. So generate the basic auth header, and\n // pass through with any additional headers supplied in constructor\n var parsedURL = helpers.parseURL(url);\n if (parsedURL.username && parsedURL.password) {\n this.headers.authorization = 'Basic ' + helpers.btoa(parsedURL.username + ':' + parsedURL.password);\n }\n // When all node core implementations that do not have the\n // WHATWG compatible URL parser go out of service this line can be removed.\n if (parsedURL.auth) {\n this.headers.authorization = 'Basic ' + helpers.btoa(parsedURL.auth);\n }\n // make property `connected` which will return the current connection status\n Object.defineProperty(this, 'connected', {\n get: function () {\n return this.connection && this.connection.readyState === this.connection.OPEN;\n },\n enumerable: true\n });\n this.connect();\n};\n// Inherit from EventEmitter\nWebsocketProvider.prototype = Object.create(EventEmitter.prototype);\nWebsocketProvider.prototype.constructor = WebsocketProvider;\n/**\n * Connects to the configured node\n *\n * @method connect\n *\n * @returns {void}\n */\nWebsocketProvider.prototype.connect = function () {\n this.connection = new Ws(this.url, this.protocol, undefined, this.headers, this.requestOptions, this.clientConfig);\n this._addSocketListeners();\n};\n/**\n * Listener for the `data` event of the underlying WebSocket object\n *\n * @method _onMessage\n *\n * @returns {void}\n */\nWebsocketProvider.prototype._onMessage = function (e) {\n var _this = this;\n this._parseResponse((typeof e.data === 'string') ? e.data : '').forEach(function (result) {\n if (result.method && result.method.indexOf('_subscription') !== -1) {\n _this.emit(_this.DATA, result);\n return;\n }\n var id = result.id;\n // get the id which matches the returned id\n if (Array.isArray(result)) {\n id = result[0].id;\n }\n if (_this.responseQueue.has(id)) {\n if (_this.responseQueue.get(id).callback !== undefined) {\n _this.responseQueue.get(id).callback(false, result);\n }\n _this.responseQueue.delete(id);\n }\n });\n};\n/**\n * Listener for the `open` event of the underlying WebSocket object\n *\n * @method _onConnect\n *\n * @returns {void}\n */\nWebsocketProvider.prototype._onConnect = function () {\n this.emit(this.CONNECT);\n this.reconnectAttempts = 0;\n this.reconnecting = false;\n if (this.requestQueue.size > 0) {\n var _this = this;\n this.requestQueue.forEach(function (request, key) {\n _this.send(request.payload, request.callback);\n _this.requestQueue.delete(key);\n });\n }\n};\n/**\n * Listener for the `close` event of the underlying WebSocket object\n *\n * @method _onClose\n *\n * @returns {void}\n */\nWebsocketProvider.prototype._onClose = function (event) {\n var _this = this;\n if (this.reconnectOptions.auto && (![1000, 1001].includes(event.code) || event.wasClean === false)) {\n this.reconnect();\n return;\n }\n this.emit(this.CLOSE, event);\n if (this.requestQueue.size > 0) {\n this.requestQueue.forEach(function (request, key) {\n request.callback(errors.ConnectionNotOpenError(event));\n _this.requestQueue.delete(key);\n });\n }\n if (this.responseQueue.size > 0) {\n this.responseQueue.forEach(function (request, key) {\n request.callback(errors.InvalidConnection('on WS', event));\n _this.responseQueue.delete(key);\n });\n }\n this._removeSocketListeners();\n this.removeAllListeners();\n};\n/**\n * Will add the required socket listeners\n *\n * @method _addSocketListeners\n *\n * @returns {void}\n */\nWebsocketProvider.prototype._addSocketListeners = function () {\n this.connection.addEventListener('message', this._onMessage.bind(this));\n this.connection.addEventListener('open', this._onConnect.bind(this));\n this.connection.addEventListener('close', this._onClose.bind(this));\n};\n/**\n * Will remove all socket listeners\n *\n * @method _removeSocketListeners\n *\n * @returns {void}\n */\nWebsocketProvider.prototype._removeSocketListeners = function () {\n this.connection.removeEventListener('message', this._onMessage);\n this.connection.removeEventListener('open', this._onConnect);\n this.connection.removeEventListener('close', this._onClose);\n};\n/**\n * Will parse the response and make an array out of it.\n *\n * @method _parseResponse\n *\n * @param {String} data\n *\n * @returns {Array}\n */\nWebsocketProvider.prototype._parseResponse = function (data) {\n var _this = this, returnValues = [];\n // DE-CHUNKER\n var dechunkedData = data\n .replace(/\\}[\\n\\r]?\\{/g, '}|--|{') // }{\n .replace(/\\}\\][\\n\\r]?\\[\\{/g, '}]|--|[{') // }][{\n .replace(/\\}[\\n\\r]?\\[\\{/g, '}|--|[{') // }[{\n .replace(/\\}\\][\\n\\r]?\\{/g, '}]|--|{') // }]{\n .split('|--|');\n dechunkedData.forEach(function (data) {\n // prepend the last chunk\n if (_this.lastChunk)\n data = _this.lastChunk + data;\n var result = null;\n try {\n result = JSON.parse(data);\n }\n catch (e) {\n _this.lastChunk = data;\n // start timeout to cancel all requests\n clearTimeout(_this.lastChunkTimeout);\n _this.lastChunkTimeout = setTimeout(function () {\n if (_this.reconnectOptions.auto && _this.reconnectOptions.onTimeout) {\n _this.reconnect();\n return;\n }\n _this.emit(_this.ERROR, errors.ConnectionTimeout(_this._customTimeout));\n if (_this.requestQueue.size > 0) {\n _this.requestQueue.forEach(function (request, key) {\n request.callback(errors.ConnectionTimeout(_this._customTimeout));\n _this.requestQueue.delete(key);\n });\n }\n }, _this._customTimeout);\n return;\n }\n // cancel timeout and set chunk to null\n clearTimeout(_this.lastChunkTimeout);\n _this.lastChunk = null;\n if (result)\n returnValues.push(result);\n });\n return returnValues;\n};\n/**\n * Does check if the provider is connecting and will add it to the queue or will send it directly\n *\n * @method send\n *\n * @param {Object} payload\n * @param {Function} callback\n *\n * @returns {void}\n */\nWebsocketProvider.prototype.send = function (payload, callback) {\n var _this = this;\n var id = payload.id;\n var request = { payload: payload, callback: callback };\n if (Array.isArray(payload)) {\n id = payload[0].id;\n }\n if (this.connection.readyState === this.connection.CONNECTING || this.reconnecting) {\n this.requestQueue.set(id, request);\n return;\n }\n if (this.connection.readyState !== this.connection.OPEN) {\n this.requestQueue.delete(id);\n this.emit(this.ERROR, errors.ConnectionNotOpenError());\n request.callback(errors.ConnectionNotOpenError());\n return;\n }\n this.responseQueue.set(id, request);\n this.requestQueue.delete(id);\n try {\n this.connection.send(JSON.stringify(request.payload));\n }\n catch (error) {\n request.callback(error);\n _this.responseQueue.delete(id);\n }\n};\n/**\n * Resets the providers, clears all callbacks\n *\n * @method reset\n *\n * @returns {void}\n */\nWebsocketProvider.prototype.reset = function () {\n this.responseQueue.clear();\n this.requestQueue.clear();\n this.removeAllListeners();\n this._removeSocketListeners();\n this._addSocketListeners();\n};\n/**\n * Closes the current connection with the given code and reason arguments\n *\n * @method disconnect\n *\n * @param {number} code\n * @param {string} reason\n *\n * @returns {void}\n */\nWebsocketProvider.prototype.disconnect = function (code, reason) {\n this._removeSocketListeners();\n this.connection.close(code || 1000, reason);\n};\n/**\n * Returns the desired boolean.\n *\n * @method supportsSubscriptions\n *\n * @returns {boolean}\n */\nWebsocketProvider.prototype.supportsSubscriptions = function () {\n return true;\n};\n/**\n * Removes the listeners and reconnects to the socket.\n *\n * @method reconnect\n *\n * @returns {void}\n */\nWebsocketProvider.prototype.reconnect = function () {\n var _this = this;\n this.reconnecting = true;\n if (this.responseQueue.size > 0) {\n this.responseQueue.forEach(function (request, key) {\n request.callback(errors.PendingRequestsOnReconnectingError());\n _this.responseQueue.delete(key);\n });\n }\n if (!this.reconnectOptions.maxAttempts ||\n this.reconnectAttempts < this.reconnectOptions.maxAttempts) {\n setTimeout(function () {\n _this.reconnectAttempts++;\n _this._removeSocketListeners();\n _this.emit(_this.RECONNECT, _this.reconnectAttempts);\n _this.connect();\n }, this.reconnectOptions.delay);\n return;\n }\n this.emit(this.ERROR, errors.MaxAttemptsReachedOnReconnectingError());\n this.reconnecting = false;\n if (this.requestQueue.size > 0) {\n this.requestQueue.forEach(function (request, key) {\n request.callback(errors.MaxAttemptsReachedOnReconnectingError());\n _this.requestQueue.delete(key);\n });\n }\n};\nmodule.exports = WebsocketProvider;\n","var isNode = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\nvar isRN = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';\nvar _btoa = null;\nvar helpers = null;\nif (isNode || isRN) {\n _btoa = function (str) {\n return Buffer.from(str).toString('base64');\n };\n var url = require('url');\n if (url.URL) {\n // Use the new Node 6+ API for parsing URLs that supports username/password\n var newURL = url.URL;\n helpers = function (url) {\n return new newURL(url);\n };\n }\n else {\n // Web3 supports Node.js 5, so fall back to the legacy URL API if necessary\n helpers = require('url').parse;\n }\n}\nelse {\n _btoa = btoa.bind(window);\n helpers = function (url) {\n return new URL(url);\n };\n}\nmodule.exports = {\n parseURL: helpers,\n btoa: _btoa\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","var _globalThis;\ntry {\n\t_globalThis = require('es5-ext/global');\n} catch (error) {\n} finally {\n\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","module.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module) be nice\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5 engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\tget: function () { return this; },\n\t\tconfigurable: true\n\t});\n\ttry { return __global__; }\n\tfinally { delete Object.prototype.__global__; }\n})();\n","module.exports = require('../package.json').version;\n","/*\n This file is part of web3.js.\n\n web3.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n web3.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with web3.js. If not, see .\n*/\n/** @file httpprovider.js\n * @authors:\n * Marek Kotewicz \n * Marian Oancea\n * Fabian Vogelsteller \n * @date 2015\n */\nvar errors = require('web3-core-helpers').errors;\nvar XHR2 = require('xhr2-cookies').XMLHttpRequest; // jshint ignore: line\nvar http = require('http');\nvar https = require('https');\n/**\n * HttpProvider should be used to send rpc calls over http\n */\nvar HttpProvider = function HttpProvider(host, options) {\n options = options || {};\n this.withCredentials = options.withCredentials || false;\n this.timeout = options.timeout || 0;\n this.headers = options.headers;\n this.agent = options.agent;\n this.connected = false;\n // keepAlive is true unless explicitly set to false\n const keepAlive = options.keepAlive !== false;\n this.host = host || 'http://localhost:8545';\n if (!this.agent) {\n if (this.host.substring(0, 5) === \"https\") {\n this.httpsAgent = new https.Agent({ keepAlive });\n }\n else {\n this.httpAgent = new http.Agent({ keepAlive });\n }\n }\n};\nHttpProvider.prototype._prepareRequest = function () {\n var request;\n // the current runtime is a browser\n if (typeof XMLHttpRequest !== 'undefined') {\n request = new XMLHttpRequest();\n }\n else {\n request = new XHR2();\n var agents = { httpsAgent: this.httpsAgent, httpAgent: this.httpAgent, baseUrl: this.baseUrl };\n if (this.agent) {\n agents.httpsAgent = this.agent.https;\n agents.httpAgent = this.agent.http;\n agents.baseUrl = this.agent.baseUrl;\n }\n request.nodejsSet(agents);\n }\n request.open('POST', this.host, true);\n request.setRequestHeader('Content-Type', 'application/json');\n request.timeout = this.timeout;\n request.withCredentials = this.withCredentials;\n if (this.headers) {\n this.headers.forEach(function (header) {\n request.setRequestHeader(header.name, header.value);\n });\n }\n return request;\n};\n/**\n * Should be used to make async request\n *\n * @method send\n * @param {Object} payload\n * @param {Function} callback triggered on end with (err, result)\n */\nHttpProvider.prototype.send = function (payload, callback) {\n var _this = this;\n var request = this._prepareRequest();\n request.onreadystatechange = function () {\n if (request.readyState === 4 && request.timeout !== 1) {\n var result = request.responseText;\n var error = null;\n try {\n result = JSON.parse(result);\n }\n catch (e) {\n error = errors.InvalidResponse(request.responseText);\n }\n _this.connected = true;\n callback(error, result);\n }\n };\n request.ontimeout = function () {\n _this.connected = false;\n callback(errors.ConnectionTimeout(this.timeout));\n };\n try {\n request.send(JSON.stringify(payload));\n }\n catch (error) {\n this.connected = false;\n callback(errors.InvalidConnection(this.host));\n }\n};\nHttpProvider.prototype.disconnect = function () {\n //NO OP\n};\n/**\n * Returns the desired boolean.\n *\n * @method supportsSubscriptions\n * @returns {boolean}\n */\nHttpProvider.prototype.supportsSubscriptions = function () {\n return false;\n};\nmodule.exports = HttpProvider;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__export(require(\"./xml-http-request\"));\nvar xml_http_request_event_target_1 = require(\"./xml-http-request-event-target\");\nexports.XMLHttpRequestEventTarget = xml_http_request_event_target_1.XMLHttpRequestEventTarget;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar os = require(\"os\");\nvar url = require(\"url\");\nvar progress_event_1 = require(\"./progress-event\");\nvar errors_1 = require(\"./errors\");\nvar xml_http_request_event_target_1 = require(\"./xml-http-request-event-target\");\nvar xml_http_request_upload_1 = require(\"./xml-http-request-upload\");\nvar Cookie = require(\"cookiejar\");\nvar XMLHttpRequest = /** @class */ (function (_super) {\n __extends(XMLHttpRequest, _super);\n function XMLHttpRequest(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this) || this;\n _this.UNSENT = XMLHttpRequest.UNSENT;\n _this.OPENED = XMLHttpRequest.OPENED;\n _this.HEADERS_RECEIVED = XMLHttpRequest.HEADERS_RECEIVED;\n _this.LOADING = XMLHttpRequest.LOADING;\n _this.DONE = XMLHttpRequest.DONE;\n _this.onreadystatechange = null;\n _this.readyState = XMLHttpRequest.UNSENT;\n _this.response = null;\n _this.responseText = '';\n _this.responseType = '';\n _this.status = 0; // TODO: UNSENT?\n _this.statusText = '';\n _this.timeout = 0;\n _this.upload = new xml_http_request_upload_1.XMLHttpRequestUpload();\n _this.responseUrl = '';\n _this.withCredentials = false;\n _this._method = null;\n _this._url = null;\n _this._sync = false;\n _this._headers = {};\n _this._loweredHeaders = {};\n _this._mimeOverride = null; // TODO: is type right?\n _this._request = null;\n _this._response = null;\n _this._responseParts = null;\n _this._responseHeaders = null;\n _this._aborting = null; // TODO: type?\n _this._error = null; // TODO: type?\n _this._loadedBytes = 0;\n _this._totalBytes = 0;\n _this._lengthComputable = false;\n _this._restrictedMethods = { CONNECT: true, TRACE: true, TRACK: true };\n _this._restrictedHeaders = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n cookie2: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n via: true\n };\n _this._privateHeaders = { 'set-cookie': true, 'set-cookie2': true };\n _this._userAgent = \"Mozilla/5.0 (\" + os.type() + \" \" + os.arch() + \") node.js/\" + process.versions.node + \" v8/\" + process.versions.v8;\n _this._anonymous = options.anon || false;\n return _this;\n }\n XMLHttpRequest.prototype.open = function (method, url, async, user, password) {\n if (async === void 0) { async = true; }\n method = method.toUpperCase();\n if (this._restrictedMethods[method]) {\n throw new XMLHttpRequest.SecurityError(\"HTTP method \" + method + \" is not allowed in XHR\");\n }\n ;\n var xhrUrl = this._parseUrl(url, user, password);\n if (this.readyState === XMLHttpRequest.HEADERS_RECEIVED || this.readyState === XMLHttpRequest.LOADING) {\n // TODO(pwnall): terminate abort(), terminate send()\n }\n this._method = method;\n this._url = xhrUrl;\n this._sync = !async;\n this._headers = {};\n this._loweredHeaders = {};\n this._mimeOverride = null;\n this._setReadyState(XMLHttpRequest.OPENED);\n this._request = null;\n this._response = null;\n this.status = 0;\n this.statusText = '';\n this._responseParts = [];\n this._responseHeaders = null;\n this._loadedBytes = 0;\n this._totalBytes = 0;\n this._lengthComputable = false;\n };\n XMLHttpRequest.prototype.setRequestHeader = function (name, value) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new XMLHttpRequest.InvalidStateError('XHR readyState must be OPENED');\n }\n var loweredName = name.toLowerCase();\n if (this._restrictedHeaders[loweredName] || /^sec-/.test(loweredName) || /^proxy-/.test(loweredName)) {\n console.warn(\"Refused to set unsafe header \\\"\" + name + \"\\\"\");\n return;\n }\n value = value.toString();\n if (this._loweredHeaders[loweredName] != null) {\n name = this._loweredHeaders[loweredName];\n this._headers[name] = this._headers[name] + \", \" + value;\n }\n else {\n this._loweredHeaders[loweredName] = name;\n this._headers[name] = value;\n }\n };\n XMLHttpRequest.prototype.send = function (data) {\n if (this.readyState !== XMLHttpRequest.OPENED) {\n throw new XMLHttpRequest.InvalidStateError('XHR readyState must be OPENED');\n }\n if (this._request) {\n throw new XMLHttpRequest.InvalidStateError('send() already called');\n }\n switch (this._url.protocol) {\n case 'file:':\n return this._sendFile(data);\n case 'http:':\n case 'https:':\n return this._sendHttp(data);\n default:\n throw new XMLHttpRequest.NetworkError(\"Unsupported protocol \" + this._url.protocol);\n }\n };\n XMLHttpRequest.prototype.abort = function () {\n if (this._request == null) {\n return;\n }\n this._request.abort();\n this._setError();\n this._dispatchProgress('abort');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype.getResponseHeader = function (name) {\n if (this._responseHeaders == null || name == null) {\n return null;\n }\n var loweredName = name.toLowerCase();\n return this._responseHeaders.hasOwnProperty(loweredName)\n ? this._responseHeaders[name.toLowerCase()]\n : null;\n };\n XMLHttpRequest.prototype.getAllResponseHeaders = function () {\n var _this = this;\n if (this._responseHeaders == null) {\n return '';\n }\n return Object.keys(this._responseHeaders).map(function (key) { return key + \": \" + _this._responseHeaders[key]; }).join('\\r\\n');\n };\n XMLHttpRequest.prototype.overrideMimeType = function (mimeType) {\n if (this.readyState === XMLHttpRequest.LOADING || this.readyState === XMLHttpRequest.DONE) {\n throw new XMLHttpRequest.InvalidStateError('overrideMimeType() not allowed in LOADING or DONE');\n }\n this._mimeOverride = mimeType.toLowerCase();\n };\n XMLHttpRequest.prototype.nodejsSet = function (options) {\n this.nodejsHttpAgent = options.httpAgent || this.nodejsHttpAgent;\n this.nodejsHttpsAgent = options.httpsAgent || this.nodejsHttpsAgent;\n if (options.hasOwnProperty('baseUrl')) {\n if (options.baseUrl != null) {\n var parsedUrl = url.parse(options.baseUrl, false, true);\n if (!parsedUrl.protocol) {\n throw new XMLHttpRequest.SyntaxError(\"baseUrl must be an absolute URL\");\n }\n }\n this.nodejsBaseUrl = options.baseUrl;\n }\n };\n XMLHttpRequest.nodejsSet = function (options) {\n XMLHttpRequest.prototype.nodejsSet(options);\n };\n XMLHttpRequest.prototype._setReadyState = function (readyState) {\n this.readyState = readyState;\n this.dispatchEvent(new progress_event_1.ProgressEvent('readystatechange'));\n };\n XMLHttpRequest.prototype._sendFile = function (data) {\n // TODO\n throw new Error('Protocol file: not implemented');\n };\n XMLHttpRequest.prototype._sendHttp = function (data) {\n if (this._sync) {\n throw new Error('Synchronous XHR processing not implemented');\n }\n if (data && (this._method === 'GET' || this._method === 'HEAD')) {\n console.warn(\"Discarding entity body for \" + this._method + \" requests\");\n data = null;\n }\n else {\n data = data || '';\n }\n this.upload._setData(data);\n this._finalizeHeaders();\n this._sendHxxpRequest();\n };\n XMLHttpRequest.prototype._sendHxxpRequest = function () {\n var _this = this;\n if (this.withCredentials) {\n var cookie = XMLHttpRequest.cookieJar\n .getCookies(Cookie.CookieAccessInfo(this._url.hostname, this._url.pathname, this._url.protocol === 'https:')).toValueString();\n this._headers.cookie = this._headers.cookie2 = cookie;\n }\n var _a = this._url.protocol === 'http:' ? [http, this.nodejsHttpAgent] : [https, this.nodejsHttpsAgent], hxxp = _a[0], agent = _a[1];\n var requestMethod = hxxp.request.bind(hxxp);\n var request = requestMethod({\n hostname: this._url.hostname,\n port: +this._url.port,\n path: this._url.path,\n auth: this._url.auth,\n method: this._method,\n headers: this._headers,\n agent: agent\n });\n this._request = request;\n if (this.timeout) {\n request.setTimeout(this.timeout, function () { return _this._onHttpTimeout(request); });\n }\n request.on('response', function (response) { return _this._onHttpResponse(request, response); });\n request.on('error', function (error) { return _this._onHttpRequestError(request, error); });\n this.upload._startUpload(request);\n if (this._request === request) {\n this._dispatchProgress('loadstart');\n }\n };\n XMLHttpRequest.prototype._finalizeHeaders = function () {\n this._headers = __assign({}, this._headers, { Connection: 'keep-alive', Host: this._url.host, 'User-Agent': this._userAgent }, this._anonymous ? { Referer: 'about:blank' } : {});\n this.upload._finalizeHeaders(this._headers, this._loweredHeaders);\n };\n XMLHttpRequest.prototype._onHttpResponse = function (request, response) {\n var _this = this;\n if (this._request !== request) {\n return;\n }\n if (this.withCredentials && (response.headers['set-cookie'] || response.headers['set-cookie2'])) {\n XMLHttpRequest.cookieJar\n .setCookies(response.headers['set-cookie'] || response.headers['set-cookie2']);\n }\n if ([301, 302, 303, 307, 308].indexOf(response.statusCode) >= 0) {\n this._url = this._parseUrl(response.headers.location);\n this._method = 'GET';\n if (this._loweredHeaders['content-type']) {\n delete this._headers[this._loweredHeaders['content-type']];\n delete this._loweredHeaders['content-type'];\n }\n if (this._headers['Content-Type'] != null) {\n delete this._headers['Content-Type'];\n }\n delete this._headers['Content-Length'];\n this.upload._reset();\n this._finalizeHeaders();\n this._sendHxxpRequest();\n return;\n }\n this._response = response;\n this._response.on('data', function (data) { return _this._onHttpResponseData(response, data); });\n this._response.on('end', function () { return _this._onHttpResponseEnd(response); });\n this._response.on('close', function () { return _this._onHttpResponseClose(response); });\n this.responseUrl = this._url.href.split('#')[0];\n this.status = response.statusCode;\n this.statusText = http.STATUS_CODES[this.status];\n this._parseResponseHeaders(response);\n var lengthString = this._responseHeaders['content-length'] || '';\n this._totalBytes = +lengthString;\n this._lengthComputable = !!lengthString;\n this._setReadyState(XMLHttpRequest.HEADERS_RECEIVED);\n };\n XMLHttpRequest.prototype._onHttpResponseData = function (response, data) {\n if (this._response !== response) {\n return;\n }\n this._responseParts.push(new Buffer(data));\n this._loadedBytes += data.length;\n if (this.readyState !== XMLHttpRequest.LOADING) {\n this._setReadyState(XMLHttpRequest.LOADING);\n }\n this._dispatchProgress('progress');\n };\n XMLHttpRequest.prototype._onHttpResponseEnd = function (response) {\n if (this._response !== response) {\n return;\n }\n this._parseResponse();\n this._request = null;\n this._response = null;\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('load');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype._onHttpResponseClose = function (response) {\n if (this._response !== response) {\n return;\n }\n var request = this._request;\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype._onHttpTimeout = function (request) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('timeout');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype._onHttpRequestError = function (request, error) {\n if (this._request !== request) {\n return;\n }\n this._setError();\n request.abort();\n this._setReadyState(XMLHttpRequest.DONE);\n this._dispatchProgress('error');\n this._dispatchProgress('loadend');\n };\n XMLHttpRequest.prototype._dispatchProgress = function (eventType) {\n var event = new XMLHttpRequest.ProgressEvent(eventType);\n event.lengthComputable = this._lengthComputable;\n event.loaded = this._loadedBytes;\n event.total = this._totalBytes;\n this.dispatchEvent(event);\n };\n XMLHttpRequest.prototype._setError = function () {\n this._request = null;\n this._response = null;\n this._responseHeaders = null;\n this._responseParts = null;\n };\n XMLHttpRequest.prototype._parseUrl = function (urlString, user, password) {\n var absoluteUrl = this.nodejsBaseUrl == null ? urlString : url.resolve(this.nodejsBaseUrl, urlString);\n var xhrUrl = url.parse(absoluteUrl, false, true);\n xhrUrl.hash = null;\n var _a = (xhrUrl.auth || '').split(':'), xhrUser = _a[0], xhrPassword = _a[1];\n if (xhrUser || xhrPassword || user || password) {\n xhrUrl.auth = (user || xhrUser || '') + \":\" + (password || xhrPassword || '');\n }\n return xhrUrl;\n };\n XMLHttpRequest.prototype._parseResponseHeaders = function (response) {\n this._responseHeaders = {};\n for (var name_1 in response.headers) {\n var loweredName = name_1.toLowerCase();\n if (this._privateHeaders[loweredName]) {\n continue;\n }\n this._responseHeaders[loweredName] = response.headers[name_1];\n }\n if (this._mimeOverride != null) {\n this._responseHeaders['content-type'] = this._mimeOverride;\n }\n };\n XMLHttpRequest.prototype._parseResponse = function () {\n var buffer = Buffer.concat(this._responseParts);\n this._responseParts = null;\n switch (this.responseType) {\n case 'json':\n this.responseText = null;\n try {\n this.response = JSON.parse(buffer.toString('utf-8'));\n }\n catch (_a) {\n this.response = null;\n }\n return;\n case 'buffer':\n this.responseText = null;\n this.response = buffer;\n return;\n case 'arraybuffer':\n this.responseText = null;\n var arrayBuffer = new ArrayBuffer(buffer.length);\n var view = new Uint8Array(arrayBuffer);\n for (var i = 0; i < buffer.length; i++) {\n view[i] = buffer[i];\n }\n this.response = arrayBuffer;\n return;\n case 'text':\n default:\n try {\n this.responseText = buffer.toString(this._parseResponseEncoding());\n }\n catch (_b) {\n this.responseText = buffer.toString('binary');\n }\n this.response = this.responseText;\n }\n };\n XMLHttpRequest.prototype._parseResponseEncoding = function () {\n return /;\\s*charset=(.*)$/.exec(this._responseHeaders['content-type'] || '')[1] || 'utf-8';\n };\n XMLHttpRequest.ProgressEvent = progress_event_1.ProgressEvent;\n XMLHttpRequest.InvalidStateError = errors_1.InvalidStateError;\n XMLHttpRequest.NetworkError = errors_1.NetworkError;\n XMLHttpRequest.SecurityError = errors_1.SecurityError;\n XMLHttpRequest.SyntaxError = errors_1.SyntaxError;\n XMLHttpRequest.XMLHttpRequestUpload = xml_http_request_upload_1.XMLHttpRequestUpload;\n XMLHttpRequest.UNSENT = 0;\n XMLHttpRequest.OPENED = 1;\n XMLHttpRequest.HEADERS_RECEIVED = 2;\n XMLHttpRequest.LOADING = 3;\n XMLHttpRequest.DONE = 4;\n XMLHttpRequest.cookieJar = Cookie.CookieJar();\n return XMLHttpRequest;\n}(xml_http_request_event_target_1.XMLHttpRequestEventTarget));\nexports.XMLHttpRequest = XMLHttpRequest;\nXMLHttpRequest.prototype.nodejsHttpAgent = http.globalAgent;\nXMLHttpRequest.prototype.nodejsHttpsAgent = https.globalAgent;\nXMLHttpRequest.prototype.nodejsBaseUrl = null;\n//# sourceMappingURL=xml-http-request.js.map","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\nvar toArrayBuffer = require('to-arraybuffer')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else if (capability.vbArray && preferBinary) {\n\t\treturn 'text:vbarray'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n\t\tif (capability.arraybuffer) {\n\t\t\tbody = toArrayBuffer(Buffer.concat(self._body))\n\t\t} else if (capability.blobConstructor) {\n\t\t\tbody = new global.Blob(self._body.map(function (buffer) {\n\t\t\t\treturn toArrayBuffer(buffer)\n\t\t\t}), {\n\t\t\t\ttype: (headersObj['content-type'] || {}).value || ''\n\t\t\t})\n\t\t} else {\n\t\t\t// get utf8 string\n\t\t\tbody = Buffer.concat(self._body).toString()\n\t\t}\n\t}\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tvar fetchTimer = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tglobal.clearTimeout(self._fetchTimer)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode.split(':')[0]\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress()\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n\tvar self = this\n\tself._destroyed = true\n\tglobal.clearTimeout(self._fetchTimer)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setTimeout = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a