diff --git a/CHANGELOG.md b/CHANGELOG.md index ef5011747df..00e378357e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -371,6 +371,18 @@ Released with 1.0.0-beta.37 code base. - Bump `elliptic` from `6.5.3` to `6.5.4` for `web3-core-requestmanager` (#3945) - Rewrite `web3-eth-iban` in ES6 (#3955) +## [1.3.6] + +### Changes + +- Bump `underscore` package from `1.9.1` to `1.12.1` (#4051) +- Bump `@ensdomains/ens` package from `^0.4.5` to `^0.6.0` (#4059) +- Bump `ethers` package from `^5.0.18` to `^5.1.4` (#4059) + +### Removes + +- Accidental commit (yarn-error.log) (#4062) + ## [Unreleased] -## [1.3.6] +## [1.3.7] diff --git a/dist/web3.min.js b/dist/web3.min.js index 4651620bcc7..3197bc8e3c1 100644 --- a/dist/web3.min.js +++ b/dist/web3.min.js @@ -1,24 +1,27 @@ -!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=198)}([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){ +!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=314)}([function(e,t,r){"use strict";e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},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.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){"use strict";(function(e){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var n=r(205),i=r(206),o=r(105);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 S(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 S(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 M(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 C(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 R(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 T(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||B(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||B(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||B(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||B(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||B(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||B(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||B(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||B(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||B(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||B(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||B(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||B(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||B(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||B(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||B(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||B(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)||C(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||C(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||C(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):R(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||C(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):R(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||C(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):T(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||C(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):T(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);C(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);C(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||C(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||C(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):R(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||C(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):R(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||C(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):T(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||C(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):T(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(8))},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(209).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,M=k>>>13,S=0|a[5],E=8191&S,x=S>>>13,I=0|a[6],O=8191&I,P=I>>>13,B=0|a[7],C=8191&B,R=B>>>13,T=0|a[8],U=8191&T,N=T>>>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,Z=0|s[3],$=8191&Z,J=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,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,$)|0))<<13)|0;f=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(M,q)|0,o=Math.imul(M,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,$)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,J)|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(M,K)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(y,J)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,J)|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(M,W)|0,o=o+Math.imul(M,Y)|0,n=n+Math.imul(w,$)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,J)|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(C,q),i=(i=Math.imul(C,z))+Math.imul(R,q)|0,o=Math.imul(R,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,$)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,J)|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(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,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,$)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(x,$)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,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 Mt=(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)+(Mt>>>26)|0,Mt&=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(C,W)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(O,$)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,J)|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(M,rt)|0,o=o+Math.imul(M,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 St=(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)+(St>>>26)|0,St&=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(C,$)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,J)|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(M,ot)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(U,J)|0)+Math.imul(N,$)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,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(M,ut)|0,o=o+Math.imul(M,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,$),i=(i=Math.imul(L,J))+Math.imul(F,$)|0,o=Math.imul(F,J),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(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(R,rt)|0,o=o+Math.imul(R,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(M,ht)|0,o=o+Math.imul(M,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(C,ot)|0,i=(i=i+Math.imul(C,at)|0)+Math.imul(R,ot)|0,o=o+Math.imul(R,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(M,pt)|0))<<13)|0;f=((o=o+Math.imul(M,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(C,ut)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(R,ut)|0,o=o+Math.imul(R,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(C,ht)|0,i=(i=i+Math.imul(C,dt)|0)+Math.imul(R,ht)|0,o=o+Math.imul(R,dt)|0;var Bt=(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)+(Bt>>>26)|0,Bt&=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 Ct=(f+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,bt)|0)+Math.imul(R,pt)|0))<<13)|0;f=((o=o+Math.imul(R,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Rt=(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)+(Rt>>>26)|0,Rt&=67108863;var Tt=(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)+(Tt>>>26)|0,Tt&=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]=Mt,u[9]=St,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Bt,u[16]=Ct,u[17]=Rt,u[18]=Tt,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 M(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 M(t)},o(M,A),M.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},M.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},M.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)},M.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)},M.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t)}).call(this,r(20)(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";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(S(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)S(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=R(e,!1,!1),t=Object(t));for(var i=0,o=e.length;i1&&(r=e[1])):(e=v.map(R(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 Z=/(.)^/,$={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},J=/\\|'|\r|\n|\u2028|\u2029/g,X=function(t){return"\\"+$[t]};v.template=function(t,e,r){!e&&r&&(e=r),e=v.defaults({},e,v.templateSettings);var n,i=RegExp([(e.escape||Z).source,(e.interpolate||Z).source,(e.evaluate||Z).source].join("|")+"|$","g"),o=0,a="__p+='";t.replace(i,(function(e,r,n,i,s){return a+=t.slice(o,s).replace(J,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(8),r(20)(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";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(7)),a=r(254),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(204),a=r(107),s=r(216),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(130);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(131);t.exports=function(t,e){return!e||"object"!==n(e)&&"function"!=typeof e?i(t):e}},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";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(162);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(27),o=r(36),a=r(182);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,i=0,o=0;t.cmpn(-i)>0||e.cmpn(-o)>0;){var a,s,u=t.andln(3)+i&3,f=e.andln(3)+o&3;3===u&&(u=-1),3===f&&(f=-1),a=0==(1&u)?0:3!==(n=t.andln(7)+i&7)&&5!==n||2!==f?u:-u,r[0].push(a),s=0==(1&f)?0:3!==(n=e.andln(7)+o&7)&&5!==n||2!==u?f:-f,r[1].push(s),2*i===a+1&&(i=1-i),2*o===s+1&&(o=1-o),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=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(7)),a=r(13),s=r(33),u=r(37),f=r(15),c=r(44),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(36),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";(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="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(431).Buffer}catch(t){}function u(t,e){var r=t.charCodeAt(e);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function f(t,e,r){var n=u(t,r);return r-1>=e&&(n|=u(t,r-1)<<4),n}function c(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++,this.negative=1),o=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,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)i=f(t,e,n)<=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;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,f=r;f1&&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 h=["","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"],d=[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],l=[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 p(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?h[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=d[t],c=l[t];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(c).toString(t);r=(p=p.idivn(c)).isZero()?b+r:h[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,M=k>>>13,S=0|a[5],E=8191&S,x=S>>>13,I=0|a[6],O=8191&I,P=I>>>13,B=0|a[7],C=8191&B,R=B>>>13,T=0|a[8],U=8191&T,N=T>>>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,Z=0|s[3],$=8191&Z,J=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,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,$)|0))<<13)|0;f=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(M,q)|0,o=Math.imul(M,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,$)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,J)|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(M,K)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(y,J)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,J)|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(M,W)|0,o=o+Math.imul(M,Y)|0,n=n+Math.imul(w,$)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,J)|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(C,q),i=(i=Math.imul(C,z))+Math.imul(R,q)|0,o=Math.imul(R,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,$)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,J)|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(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,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,$)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(x,$)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,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 Mt=(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)+(Mt>>>26)|0,Mt&=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(C,W)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(O,$)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,J)|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(M,rt)|0,o=o+Math.imul(M,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 St=(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)+(St>>>26)|0,St&=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(C,$)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,J)|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(M,ot)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(U,J)|0)+Math.imul(N,$)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,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(M,ut)|0,o=o+Math.imul(M,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,$),i=(i=Math.imul(L,J))+Math.imul(F,$)|0,o=Math.imul(F,J),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(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(R,rt)|0,o=o+Math.imul(R,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(M,ht)|0,o=o+Math.imul(M,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(C,ot)|0,i=(i=i+Math.imul(C,at)|0)+Math.imul(R,ot)|0,o=o+Math.imul(R,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(M,pt)|0))<<13)|0;f=((o=o+Math.imul(M,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(C,ut)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(R,ut)|0,o=o+Math.imul(R,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(C,ht)|0,i=(i=i+Math.imul(C,dt)|0)+Math.imul(R,ht)|0,o=o+Math.imul(R,dt)|0;var Bt=(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)+(Bt>>>26)|0,Bt&=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 Ct=(f+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,bt)|0)+Math.imul(R,pt)|0))<<13)|0;f=((o=o+Math.imul(R,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Rt=(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)+(Rt>>>26)|0,Rt&=67108863;var Tt=(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)+(Tt>>>26)|0,Tt&=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]=Mt,u[9]=St,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Bt,u[16]=Ct,u[17]=Rt,u[18]=Tt,0!==f&&(u[19]=f,r.length++),r};function m(t,e,r){return(new y).mulp(t,e,r)}function y(t,e){this.x=t,this.y=e}Math.imul||(b=p),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?b(this,t,e):r<63?p(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):m(this,t,e)},y.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},y.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 M(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 v={k256:null,p224:null,p192:null,p25519:null};function g(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 w(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function A(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(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){M.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)}g.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},g.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},g.prototype.split=function(t,e){t.iushrn(this.n,0,e)},g.prototype.imulK=function(t){return t.imul(this.k)},o(w,g),w.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},w.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(v[t])return v[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new _;else if("p192"===t)e=new k;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new A}return v[t]=e,e},M.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},M.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")},M.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},M.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},M.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)},M.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},M.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)},M.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},M.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},M.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},M.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},M.prototype.isqr=function(t){return this.imul(t,t.clone())},M.prototype.sqr=function(t){return this.mul(t,t)},M.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},M.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},M.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new S(t)},o(S,M),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(20)(t))},function(t,e,r){"use strict";var n=r(4).Buffer,i=r(34).Transform,o=r(56).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(200),i=r(249);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}}})],M={};a.each(A,(function(t){t.attachToObject(M),t.requestManager=n.requestManager}));var S=function(a,h,l,A,S){if(!l)return S||(S={unsubscribe:function(){clearInterval(v)}}),(a?c.resolve(a):M.getTransactionReceipt(e)).catch((function(e){S.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,M.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,M.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,M.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&&(S.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&&(S.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,M.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&&S.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&&S.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&&(S.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&&(S.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))}));S.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(S.bind(null,t,!0),1e3)};this.requestManager.provider.on?M.subscribe("newBlockHeaders",(function(r,n,i){r||!n?e():S(t,!1,r,0,i)})):e()}.bind(this);M.getTransactionReceipt(e).then((function(e){e&&e.blockHash?(t.eventEmitter.listeners("confirmation").length>0&&E(e),S(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(120),i=r(256)},function(t,e,r){"use strict";t.exports=i;var n=r(75).EventEmitter;function i(){n.call(this)}r(3)(i,n),i.Readable=r(41),i.Writable=r(344),i.Duplex=r(345),i.Transform=r(346),i.PassThrough=r(347),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(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(428).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,M=k>>>13,S=0|a[5],E=8191&S,x=S>>>13,I=0|a[6],O=8191&I,P=I>>>13,B=0|a[7],C=8191&B,R=B>>>13,T=0|a[8],U=8191&T,N=T>>>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,Z=0|s[3],$=8191&Z,J=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,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,$)|0))<<13)|0;f=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(M,q)|0,o=Math.imul(M,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,$)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,J)|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(M,K)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(y,J)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,J)|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(M,W)|0,o=o+Math.imul(M,Y)|0,n=n+Math.imul(w,$)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,J)|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(C,q),i=(i=Math.imul(C,z))+Math.imul(R,q)|0,o=Math.imul(R,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,$)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,J)|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(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,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,$)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(x,$)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,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 Mt=(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)+(Mt>>>26)|0,Mt&=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(C,W)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(O,$)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,J)|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(M,rt)|0,o=o+Math.imul(M,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 St=(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)+(St>>>26)|0,St&=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(C,$)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,J)|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(M,ot)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(U,J)|0)+Math.imul(N,$)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,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(M,ut)|0,o=o+Math.imul(M,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,$),i=(i=Math.imul(L,J))+Math.imul(F,$)|0,o=Math.imul(F,J),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(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(R,rt)|0,o=o+Math.imul(R,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(M,ht)|0,o=o+Math.imul(M,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(C,ot)|0,i=(i=i+Math.imul(C,at)|0)+Math.imul(R,ot)|0,o=o+Math.imul(R,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(M,pt)|0))<<13)|0;f=((o=o+Math.imul(M,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(C,ut)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(R,ut)|0,o=o+Math.imul(R,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(C,ht)|0,i=(i=i+Math.imul(C,dt)|0)+Math.imul(R,ht)|0,o=o+Math.imul(R,dt)|0;var Bt=(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)+(Bt>>>26)|0,Bt&=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 Ct=(f+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,bt)|0)+Math.imul(R,pt)|0))<<13)|0;f=((o=o+Math.imul(R,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Rt=(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)+(Rt>>>26)|0,Rt&=67108863;var Tt=(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)+(Tt>>>26)|0,Tt&=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]=Mt,u[9]=St,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Bt,u[16]=Ct,u[17]=Rt,u[18]=Tt,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 M(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 M(t)},o(M,A),M.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},M.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},M.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)},M.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)},M.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t)}).call(this,r(20)(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(57)),a=n(r(1)),s=r(15),u=r(264),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(110),o=r(221);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(222);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?T+="x":T+=R[U];if(!T.match(p)){var j=B.slice(0,I),L=B.slice(I+1),F=R.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,C=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 S=A.slice(-1)[0],E=(r.host||t.host||A.length>1)&&("."===S||".."===S)||""===S,x=0,I=A.length;I>=0;I--)"."===(S=A[I])?A.splice(I,1):".."===S?(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);M&&(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(113)).Stream=e,e.Readable=e,e.Writable=r(76),e.Duplex=r(31),e.Transform=r(117),e.PassThrough=r(239)},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(25),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(250)},function(t,e,r){"use strict";var n=r(73),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(251),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(257)),o=r(13)},function(t,e,r){"use strict";var n=e;n.utils=r(25),n.common=r(43),n.sha=r(267),n.ripemd=r(271),n.hmac=r(272),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(17),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(48),e.createHmac=e.Hmac=r(148);var n=r(353),i=Object.keys(n),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);e.getHashes=function(){return o};var a=r(151);e.pbkdf2=a.pbkdf2,e.pbkdf2Sync=a.pbkdf2Sync;var s=r(355);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(372);e.DiffieHellmanGroup=u.DiffieHellmanGroup,e.createDiffieHellmanGroup=u.createDiffieHellmanGroup,e.getDiffieHellman=u.getDiffieHellman,e.createDiffieHellman=u.createDiffieHellman,e.DiffieHellman=u.DiffieHellman;var f=r(376);e.createSign=f.createSign,e.Sign=f.Sign,e.createVerify=f.createVerify,e.Verify=f.Verify,e.createECDH=r(404);var c=r(405);e.publicEncrypt=c.publicEncrypt,e.privateEncrypt=c.privateEncrypt,e.publicDecrypt=c.publicDecrypt,e.privateDecrypt=c.privateDecrypt;var h=r(408);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(85);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(378).version,n.utils=r(22),n.rand=r(91),n.curve=r(163),n.curves=r(93),n.ec=r(383),n.eddsa=r(387)},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 M=!0;for(v=0;v=0&&A++,_=_.dblp(A),h<0)break;for(v=0;v0?S=u[v][E-1>>1]:E<0&&(S=u[v][-E-1>>1].neg()),_="affine"===S.type?_.mixedAdd(S):_.add(S))}}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<=a;c--)u=(u<<1)+n[c];f.push(u)}for(var h=this.jpoint(null,null,null),d=this.jpoint(null,null,null),l=i;l>0;l--){for(a=0;a=0;f--){for(var c=0;f>=0&&0===a[f];f--)c++;if(f>=0&&c++,u=u.dblp(c),f<0)break;var h=a[f];s(0!==h),u="affine"===t.type?h>0?u.mixedAdd(i[h-1>>1]):u.mixedAdd(i[-h-1>>1].neg()):h>0?u.add(i[h-1>>1]):u.add(i[-h-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,r,n,i){var s,u,f,c=this._wnafT1,h=this._wnafT2,d=this._wnafT3,l=0;for(s=0;s=1;s-=2){var b=s-1,m=s;if(1===c[b]&&1===c[m]){var y=[e[b],null,null,e[m]];0===e[b].y.cmp(e[m].y)?(y[1]=e[b].add(e[m]),y[2]=e[b].toJ().mixedAdd(e[m].neg())):0===e[b].y.cmp(e[m].y.redNeg())?(y[1]=e[b].toJ().mixedAdd(e[m]),y[2]=e[b].add(e[m].neg())):(y[1]=e[b].toJ().mixedAdd(e[m]),y[2]=e[b].toJ().mixedAdd(e[m].neg()));var v=[-3,-1,-5,-7,0,7,5,1,3],g=a(r[b],r[m]);for(l=Math.max(g[0].length,l),d[b]=new Array(l),d[m]=new Array(l),u=0;u=0;s--){for(var M=0;s>=0;){var S=!0;for(u=0;u=0&&M++,k=k.dblp(M),s<0)break;for(u=0;u0?f=h[u][E-1>>1]:E<0&&(f=h[u][-E-1>>1].neg()),k="affine"===f.type?k.mixedAdd(f):k.add(f))}}for(s=0;s=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,Z=t[22]<<10|t[23]>>>22,$=t[23]<<10|t[22]>>>22,B=t[33]<<13|t[32]>>>19,C=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,J=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,R=t[45]<<29|t[44]>>>3,T=t[44]<<29|t[45]>>>3,S=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,M=t[49]<<14|t[48]>>>18,t[0]=b^~y&g,t[1]=m^~v&w,t[10]=S^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&Z,t[31]=G^~Y&$,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=y^~g&_,t[3]=v^~w&k,t[12]=x^~O&B,t[13]=I^~P&C,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~Z&J,t[33]=Y^~$&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&M,t[14]=O^~B&R,t[15]=P^~C&T,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=Z^~J&Q,t[35]=$^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&b,t[7]=k^~M&m,t[16]=B^~R&S,t[17]=C^~T&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=J^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~b&y,t[9]=M^~m&v,t[18]=R^~S&x,t[19]=T^~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(55);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(42);f.inherits=r(3);var c={deprecate:r(237)},h=r(114),d=r(4).Buffer,l=i.Uint8Array||function(){};var p,b=r(115);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(M,t,e),t._writableState.errorEmitted=!0,t.emit("error",n)):(i(n),t._writableState.errorEmitted=!0,t.emit("error",n),M(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(),M(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"),M(t,e)}))}function M(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,M(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(116).setImmediate,r(8))},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(260),i=r(261),o=r(262),a=r(263)},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(18)),o=n(r(19)),a=n(r(16)),s=n(r(6)),u=n(r(7)),f=r(33),c=r(37),h=r(15),d=r(44);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:B(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=S;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(T);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}(M);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:R(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(T);if(i||p.throwArgumentError("invalid function signature","value",t),e.name=i[1].trim(),e.name&&R(e.name),e.inputs=A(i[2],!1),x(i[3].trim(),e),n.length>1){var o=n[1].match(T);""==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 B(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 C=new RegExp("^[A-Za-z_][A-Za-z0-9_]*$");function R(t){return t&&t.match(C)||p.throwArgumentError('invalid identifier "'.concat(t,'"'),"value",t),t}var T=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(15),s=r(288),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(314),o=r(45),a=r(320);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(343);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(145),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(145),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,M=0|this._e,S=0;S<80;S+=1){var E,x;S<16?(E=b(r,n,i,o,l,t[s[S]],h[0],f[S]),x=g(w,_,k,A,M,t[u[S]],d[0],c[S])):S<32?(E=m(r,n,i,o,l,t[s[S]],h[1],f[S]),x=v(w,_,k,A,M,t[u[S]],d[1],c[S])):S<48?(E=y(r,n,i,o,l,t[s[S]],h[2],f[S]),x=y(w,_,k,A,M,t[u[S]],d[2],c[S])):S<64?(E=v(r,n,i,o,l,t[s[S]],h[3],f[S]),x=m(w,_,k,A,M,t[u[S]],d[3],c[S])):(E=g(r,n,i,o,l,t[s[S]],h[4],f[S]),x=b(w,_,k,A,M,t[u[S]],d[4],c[S])),r=l,l=o,o=p(i,10),i=n,n=E,w=M,M=A,A=p(k,10),k=_,_=x}var I=this._b+i+A|0;this._b=this._c+o+M|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(348),n.sha1=r(349),n.sha224=r(350),n.sha256=r(146),n.sha384=r(351),n.sha512=r(147)},function(t,e,r){"use strict";e.utils=r(357),e.Cipher=r(358),e.DES=r(359),e.CBC=r(360),e.EDE=r(361)},function(t,e,r){"use strict";var n=r(362),i=r(370),o=r(157);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(363),CBC:r(364),CFB:r(365),CFB8:r(366),CFB1:r(367),OFB:r(368),CTR:r(155),GCM:r(155)},i=r(157);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(61),a=r(163),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(382)}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(415)(r(419))},function(t,e,r){"use strict";var n,i=e,o=r(96),a=r(184),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(442)}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(26),n.common=r(52),n.sha=r(436),n.ripemd=r(440),n.hmac=r(441),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(35);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"; +var n=r(395),i=r(396),o=r(204);function a(){return u.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(u.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 F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return D(e).length;default:if(n)return F(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 x(this,t,r);case"ascii":return E(this,t,r);case"latin1":case"binary":return O(this,t,r);case"base64":return A(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(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=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:y(e,t,r,n,i);if("number"==typeof t)return t&=255,u.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,u=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,u/=2,r/=2}function f(e,t){return 1===a?e[t]:e.readUInt16BE(t*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=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 A(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function x(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;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=e[i+1]))&&(u=(31&f)<<6|63&o)>127&&(c=u);break;case 3:o=e[i+1],a=e[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=e[i+1],a=e[i+2],s=e[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(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+=" ... ")),""},u.prototype.compare=function(e,t,r,n,i){if(!u.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),f=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 M(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}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function E(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 I(e,t,r,n,i,o){if(!u.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 T(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 B(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 C(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 U(e,t,r,n,o){return o||C(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function N(e,t,r,n,o){return o||C(e,0,r,8),i.write(e,t,r,n,52,8),r+8}u.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},u.prototype.readUInt8=function(e,t){return t||j(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||j(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||j(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||j(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||j(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},u.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||j(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},u.prototype.readInt8=function(e,t){return t||j(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||j(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){t||j(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return t||j(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||j(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||j(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||j(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||j(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||j(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||I(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},u.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):T(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):T(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);I(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},u.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);I(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},u.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):T(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):T(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return N(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return N(this,e,t,!1,r)},u.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||!u.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 D(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 z(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(6))},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),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";var n,i,o=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function u(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(e){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 e=u(l);h=!0;for(var t=c.length;t;){for(f=c,c=[];++d1)for(var r=1;r=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function f(e,t,r){var n=u(e,r);return r-1>=t&&(n|=u(e,r-1)<<4),n}function c(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++,this.negative=1),o=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,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)i=f(e,t,n)<=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;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,u=0,f=r;f1&&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 h=["","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"],d=[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],l=[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 p(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,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,t.length-1),l=Math.max(0,f-e.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.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(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?h[6-u.length]+u+r:u+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 f=d[e],c=l[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(c).toString(e);r=(p=p.idivn(c)).isZero()?b+r:h[f-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,u="le"===t,f=new e(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,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],M=8191&k,S=k>>>13,A=0|a[5],x=8191&A,E=A>>>13,O=0|a[6],P=8191&O,R=O>>>13,j=0|a[7],I=8191&j,T=j>>>13,B=0|a[8],C=8191&B,U=B>>>13,N=0|a[9],L=8191&N,q=N>>>13,F=0|s[0],D=8191&F,z=F>>>13,H=0|s[1],K=8191&H,W=H>>>13,V=0|s[2],G=8191&V,Z=V>>>13,J=0|s[3],X=8191&J,Y=J>>>13,$=0|s[4],Q=8191&$,ee=$>>>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],ue=8191&se,fe=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=(f+(n=Math.imul(h,D))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,D)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,D),i=(i=Math.imul(p,z))+Math.imul(b,D)|0,o=Math.imul(b,z);var ve=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,D),i=(i=Math.imul(v,z))+Math.imul(y,D)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,W)|0;var ye=(f+(n=n+Math.imul(h,G)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,G)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,D),i=(i=Math.imul(w,z))+Math.imul(_,D)|0,o=Math.imul(_,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,G)|0,o=o+Math.imul(b,Z)|0;var ge=(f+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,X)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(M,D),i=(i=Math.imul(M,z))+Math.imul(S,D)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(v,G)|0,i=(i=i+Math.imul(v,Z)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,Z)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,Y)|0;var we=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,D),i=(i=Math.imul(x,z))+Math.imul(E,D)|0,o=Math.imul(E,z),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,G)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,Y)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Y)|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=(f+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;f=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,D),i=(i=Math.imul(P,z))+Math.imul(R,D)|0,o=Math.imul(R,z),n=n+Math.imul(x,K)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(M,G)|0,i=(i=i+Math.imul(M,Z)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,Y)|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=(f+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;f=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(I,D),i=(i=Math.imul(I,z))+Math.imul(T,D)|0,o=Math.imul(T,z),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,W)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,W)|0,n=n+Math.imul(x,G)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(E,G)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,Y)|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 Me=(f+(n=n+Math.imul(h,ue)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(d,ue)|0))<<13)|0;f=((o=o+Math.imul(d,fe)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(C,D),i=(i=Math.imul(C,z))+Math.imul(U,D)|0,o=Math.imul(U,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,W)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul(P,G)|0,i=(i=i+Math.imul(P,Z)|0)+Math.imul(R,G)|0,o=o+Math.imul(R,Z)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,Y)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Y)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,fe)|0;var Se=(f+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;f=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,D),i=(i=Math.imul(L,z))+Math.imul(q,D)|0,o=Math.imul(q,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(I,G)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(P,X)|0,i=(i=i+Math.imul(P,Y)|0)+Math.imul(R,X)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(v,fe)|0)+Math.imul(y,ue)|0,o=o+Math.imul(y,fe)|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 Ae=(f+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;f=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,W))+Math.imul(q,K)|0,o=Math.imul(q,W),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,Z)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,Z)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,Y)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(E,re)|0,o=o+Math.imul(E,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,fe)|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 xe=(f+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;f=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,G),i=(i=Math.imul(L,Z))+Math.imul(q,G)|0,o=Math.imul(q,Z),n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(U,X)|0,o=o+Math.imul(U,Y)|0,n=n+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,ae)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,ae)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,fe)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,fe)|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 Ee=(f+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;f=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,Y))+Math.imul(q,X)|0,o=Math.imul(q,Y),n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(I,re)|0,i=(i=i+Math.imul(I,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,ae)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(E,ue)|0,o=o+Math.imul(E,fe)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Oe=(f+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;f=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(q,Q)|0,o=Math.imul(q,ee),n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,fe)|0,n=n+Math.imul(x,he)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(E,he)|0,o=o+Math.imul(E,de)|0;var Pe=(f+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(S,pe)|0))<<13)|0;f=((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(q,re)|0,o=Math.imul(q,ne),n=n+Math.imul(C,oe)|0,i=(i=i+Math.imul(C,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(I,ue)|0,i=(i=i+Math.imul(I,fe)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,fe)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,de)|0;var Re=(f+(n=n+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,be)|0)+Math.imul(E,pe)|0))<<13)|0;f=((o=o+Math.imul(E,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(q,oe)|0,o=Math.imul(q,ae),n=n+Math.imul(C,ue)|0,i=(i=i+Math.imul(C,fe)|0)+Math.imul(U,ue)|0,o=o+Math.imul(U,fe)|0,n=n+Math.imul(I,he)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var je=(f+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(R,pe)|0))<<13)|0;f=((o=o+Math.imul(R,be)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,fe))+Math.imul(q,ue)|0,o=Math.imul(q,fe),n=n+Math.imul(C,he)|0,i=(i=i+Math.imul(C,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Ie=(f+(n=n+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,be)|0)+Math.imul(T,pe)|0))<<13)|0;f=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(q,he)|0,o=Math.imul(q,de);var Te=(f+(n=n+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,be)|0)+Math.imul(U,pe)|0))<<13)|0;f=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863;var Be=(f+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(q,pe)|0))<<13)|0;return f=((o=Math.imul(q,be))+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,u[0]=me,u[1]=ve,u[2]=ye,u[3]=ge,u[4]=we,u[5]=_e,u[6]=ke,u[7]=Me,u[8]=Se,u[9]=Ae,u[10]=xe,u[11]=Ee,u[12]=Oe,u[13]=Pe,u[14]=Re,u[15]=je,u[16]=Ie,u[17]=Te,u[18]=Be,0!==f&&(u[19]=f,r.length++),r};function m(e,t,r){return(new v).mulp(e,t,r)}function v(e,t){this.x=e,this.y=t}Math.imul||(b=p),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?b(this,e,t):r<63?p(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):m(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},v.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,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(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)-(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(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,u=n.length-i.length;if("mod"!==t){(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"!==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),u=new a(1),f=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++f;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()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},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),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.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);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 S(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 y={k256:null,p224:null,p192:null,p25519:null};function g(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 w(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function M(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(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 A(e){S.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)}g.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.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},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},o(w,g),w.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},w.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(y[e])return y[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new _;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new M}return y[e]=t,t},S.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},S.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")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.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)},S.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},S.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)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.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),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(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 f=t.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},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new A(e)},o(A,S),A.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},A.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},A.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)},A.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)},A.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e)}).call(this,r(29)(e))},function(e,t,r){"use strict";(function(e){var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.MAX_ARRAY_INDEX=t.nonEnumerableProps=t.hasEnumBug=t._isFinite=t._isNaN=t.nativeIsView=t.nativeCreate=t.nativeKeys=t.nativeIsArray=t.supportsDataView=t.supportsArrayBuffer=t.hasOwnProperty=t.toString=t.slice=t.push=t.SymbolProto=t.ObjProto=t.ArrayProto=t.root=t.VERSION=void 0;var i=n(r(1));t.VERSION="1.12.1";var o="object"==("undefined"==typeof self?"undefined":(0,i.default)(self))&&self.self===self&&self||"object"==(void 0===e?"undefined":(0,i.default)(e))&&e.global===e&&e||Function("return this")()||{};t.root=o;var a=Array.prototype,s=Object.prototype;t.ObjProto=s,t.ArrayProto=a;var u="undefined"!=typeof Symbol?Symbol.prototype:null;t.SymbolProto=u;var f=a.push,c=a.slice,h=s.toString,d=s.hasOwnProperty;t.hasOwnProperty=d,t.toString=h,t.slice=c,t.push=f;var l="undefined"!=typeof ArrayBuffer,p="undefined"!=typeof DataView;t.supportsDataView=p,t.supportsArrayBuffer=l;var b=Array.isArray,m=Object.keys,v=Object.create,y=l&&ArrayBuffer.isView;t.nativeIsView=y,t.nativeCreate=v,t.nativeKeys=m,t.nativeIsArray=b;var g=isNaN,w=isFinite;t._isFinite=w,t._isNaN=g;var _=!{toString:null}.propertyIsEnumerable("toString");t.hasEnumBug=_;t.nonEnumerableProps=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];var k=Math.pow(2,53)-1;t.MAX_ARRAY_INDEX=k}).call(this,r(6))},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(391),i=r(392);e.exports={errors:n,formatters:i}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isBytesLike=u,t.isBytes=f,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=[],u=0;ut&&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(f(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(u(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):0===t.v||1===t.v?t.recoveryParam=t.v: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 f=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=f:t._vs!==f&&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});var i={};Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o.default}});var o=n(r(319)),a=r(154);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(!(0,i.default)(e))return[];if(o.nativeKeys)return(0,o.nativeKeys)(e);var t=[];for(var r in e)(0,a.default)(e,r)&&t.push(r);o.hasEnumBug&&(0,s.default)(e,t);return t};var i=n(r(43)),o=r(10),a=n(r(39)),s=n(r(165))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t="[object "+e+"]";return function(e){return n.toString.call(e)===t}};var n=r(10)},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(7)),o=n(r(8)),a=r(440),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 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==f[r]&&this.throwArgumentError("invalid log level name","logLevel",e),c>f[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"})}u=!!t,s=!!r}},{key:"setLogLevel",value:function(t){var r=f[t.toLowerCase()];null!=r?c=r:e.globalLogger().warn("invalid log level - "+t)}},{key:"from",value:function(t){return new e(t)}}]),e}();t.Logger=b,b.errors=l,b.levels=d},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)},e.exports.default=e.exports,e.exports.__esModule=!0,n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},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="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(621).Buffer}catch(e){}function u(e,t){var r=e.charCodeAt(t);return r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:r-48&15}function f(e,t,r){var n=u(e,r);return r-1>=t&&(n|=u(e,r-1)<<4),n}function c(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++,this.negative=1),o=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,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)i=f(e,t,n)<=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;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,u=0,f=r;f1&&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 h=["","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"],d=[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],l=[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 p(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,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,t.length-1),l=Math.max(0,f-e.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.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(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?h[6-u.length]+u+r:u+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 f=d[e],c=l[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(c).toString(e);r=(p=p.idivn(c)).isZero()?b+r:h[f-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,u="le"===t,f=new e(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,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],M=8191&k,S=k>>>13,A=0|a[5],x=8191&A,E=A>>>13,O=0|a[6],P=8191&O,R=O>>>13,j=0|a[7],I=8191&j,T=j>>>13,B=0|a[8],C=8191&B,U=B>>>13,N=0|a[9],L=8191&N,q=N>>>13,F=0|s[0],D=8191&F,z=F>>>13,H=0|s[1],K=8191&H,W=H>>>13,V=0|s[2],G=8191&V,Z=V>>>13,J=0|s[3],X=8191&J,Y=J>>>13,$=0|s[4],Q=8191&$,ee=$>>>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],ue=8191&se,fe=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=(f+(n=Math.imul(h,D))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,D)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,D),i=(i=Math.imul(p,z))+Math.imul(b,D)|0,o=Math.imul(b,z);var ve=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,D),i=(i=Math.imul(v,z))+Math.imul(y,D)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,W)|0;var ye=(f+(n=n+Math.imul(h,G)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,G)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,D),i=(i=Math.imul(w,z))+Math.imul(_,D)|0,o=Math.imul(_,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,G)|0,o=o+Math.imul(b,Z)|0;var ge=(f+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,X)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(M,D),i=(i=Math.imul(M,z))+Math.imul(S,D)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(v,G)|0,i=(i=i+Math.imul(v,Z)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,Z)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,Y)|0;var we=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,D),i=(i=Math.imul(x,z))+Math.imul(E,D)|0,o=Math.imul(E,z),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,G)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,Y)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Y)|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=(f+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;f=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,D),i=(i=Math.imul(P,z))+Math.imul(R,D)|0,o=Math.imul(R,z),n=n+Math.imul(x,K)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(M,G)|0,i=(i=i+Math.imul(M,Z)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,Y)|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=(f+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;f=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(I,D),i=(i=Math.imul(I,z))+Math.imul(T,D)|0,o=Math.imul(T,z),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,W)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,W)|0,n=n+Math.imul(x,G)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(E,G)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,Y)|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 Me=(f+(n=n+Math.imul(h,ue)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(d,ue)|0))<<13)|0;f=((o=o+Math.imul(d,fe)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(C,D),i=(i=Math.imul(C,z))+Math.imul(U,D)|0,o=Math.imul(U,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,W)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul(P,G)|0,i=(i=i+Math.imul(P,Z)|0)+Math.imul(R,G)|0,o=o+Math.imul(R,Z)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,Y)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Y)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,fe)|0;var Se=(f+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;f=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,D),i=(i=Math.imul(L,z))+Math.imul(q,D)|0,o=Math.imul(q,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(I,G)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(P,X)|0,i=(i=i+Math.imul(P,Y)|0)+Math.imul(R,X)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(v,fe)|0)+Math.imul(y,ue)|0,o=o+Math.imul(y,fe)|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 Ae=(f+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;f=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,W))+Math.imul(q,K)|0,o=Math.imul(q,W),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,Z)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,Z)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,Y)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(E,re)|0,o=o+Math.imul(E,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,fe)|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 xe=(f+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;f=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,G),i=(i=Math.imul(L,Z))+Math.imul(q,G)|0,o=Math.imul(q,Z),n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(U,X)|0,o=o+Math.imul(U,Y)|0,n=n+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,ae)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,ae)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,fe)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,fe)|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 Ee=(f+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;f=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,Y))+Math.imul(q,X)|0,o=Math.imul(q,Y),n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(I,re)|0,i=(i=i+Math.imul(I,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,ae)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(E,ue)|0,o=o+Math.imul(E,fe)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Oe=(f+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;f=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(q,Q)|0,o=Math.imul(q,ee),n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,fe)|0,n=n+Math.imul(x,he)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(E,he)|0,o=o+Math.imul(E,de)|0;var Pe=(f+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(S,pe)|0))<<13)|0;f=((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(q,re)|0,o=Math.imul(q,ne),n=n+Math.imul(C,oe)|0,i=(i=i+Math.imul(C,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(I,ue)|0,i=(i=i+Math.imul(I,fe)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,fe)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,de)|0;var Re=(f+(n=n+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,be)|0)+Math.imul(E,pe)|0))<<13)|0;f=((o=o+Math.imul(E,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(q,oe)|0,o=Math.imul(q,ae),n=n+Math.imul(C,ue)|0,i=(i=i+Math.imul(C,fe)|0)+Math.imul(U,ue)|0,o=o+Math.imul(U,fe)|0,n=n+Math.imul(I,he)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var je=(f+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(R,pe)|0))<<13)|0;f=((o=o+Math.imul(R,be)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,fe))+Math.imul(q,ue)|0,o=Math.imul(q,fe),n=n+Math.imul(C,he)|0,i=(i=i+Math.imul(C,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Ie=(f+(n=n+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,be)|0)+Math.imul(T,pe)|0))<<13)|0;f=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(q,he)|0,o=Math.imul(q,de);var Te=(f+(n=n+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,be)|0)+Math.imul(U,pe)|0))<<13)|0;f=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863;var Be=(f+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(q,pe)|0))<<13)|0;return f=((o=Math.imul(q,be))+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,u[0]=me,u[1]=ve,u[2]=ye,u[3]=ge,u[4]=we,u[5]=_e,u[6]=ke,u[7]=Me,u[8]=Se,u[9]=Ae,u[10]=xe,u[11]=Ee,u[12]=Oe,u[13]=Pe,u[14]=Re,u[15]=je,u[16]=Ie,u[17]=Te,u[18]=Be,0!==f&&(u[19]=f,r.length++),r};function m(e,t,r){return(new v).mulp(e,t,r)}function v(e,t){this.x=e,this.y=t}Math.imul||(b=p),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?b(this,e,t):r<63?p(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):m(this,e,t)},v.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},v.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,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(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)-(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(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,u=n.length-i.length;if("mod"!==t){(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"!==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),u=new a(1),f=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++f;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()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},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),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.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);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 S(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 y={k256:null,p224:null,p192:null,p25519:null};function g(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 w(){g.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){g.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){g.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function M(){g.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(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 A(e){S.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)}g.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},g.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},g.prototype.split=function(e,t){e.iushrn(this.n,0,t)},g.prototype.imulK=function(e){return e.imul(this.k)},o(w,g),w.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},w.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(y[e])return y[e];var t;if("k256"===e)t=new w;else if("p224"===e)t=new _;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new M}return y[e]=t,t},S.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},S.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")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.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)},S.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},S.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)},S.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.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),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(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 f=t.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},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new A(e)},o(A,S),A.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},A.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},A.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)},A.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)},A.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e)}).call(this,r(29)(e))},function(e,t,r){"use strict";var n=r(229);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)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){"use strict";var n=r(1).default,i=r(230);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?i(e):t},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){return i.default.iteratee!==a.default?i.default.iteratee(e,t):(0,o.default)(e,t,r)};var i=n(r(24)),o=n(r(175)),a=n(r(176))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return t=null==t?e.length-1:+t,function(){for(var r=Math.max(arguments.length-t,0),n=Array(r),i=0;i=0&&(a=r.type.substring(s));var u=e(t,r.components);i.isArray(u)&&t?o.push("tuple("+u.join(",")+")"+a):t?o.push("("+u+")"):o.push("("+u.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,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(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 f(e),n=new f(t);return r.lt(n)?-1:r.eq(n)?0:1}return 0}}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(1)),o=n(r(16)),a=r(10),s=(0,o.default)("Function"),u=a.root.document&&a.root.document.childNodes;"object"!=("undefined"==typeof Int8Array?"undefined":(0,i.default)(Int8Array))&&"function"!=typeof u&&(s=function(e){return"function"==typeof e||!1});var f=s;t.default=f},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(164)).default)("length");t.default=i},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";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=t,i=r(9),o=r(30),a=r(277);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)-u:u,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,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var a,s,u=e.andln(3)+i&3,f=t.andln(3)+o&3;3===u&&(u=-1),3===f&&(f=-1),a=0==(1&u)?0:3!==(n=e.andln(7)+i&7)&&5!==n||2!==f?u:-u,r[0].push(a),s=0==(1&f)?0:3!==(n=t.andln(7)+o&7)&&5!==n||2!==u?f:-f,r[1].push(s),2*i===a+1&&(i=1-i),2*o===s+1&&(o=1-o),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(19),o=r(51),a=r(296);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)-u:u,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,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var a,s,u=e.andln(3)+i&3,f=t.andln(3)+o&3;3===u&&(u=-1),3===f&&(f=-1),a=0==(1&u)?0:3!==(n=e.andln(7)+i&7)&&5!==n||2!==f?u:-u,r[0].push(a),s=0==(1&f)?0:3!==(n=t.andln(7)+o&7)&&5!==n||2!==u?f:-f,r[1].push(s),2*i===a+1&&(i=1-i),2*o===s+1&&(o=1-o),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=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(7)),o=n(r(8)),a=r(13),s=r(40),u=r(50),f=r(17),c=r(74),h=new f.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,u.defineReadOnly)(this,"wordSize",t||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(t)}return(0,o.default)(e,[{key:"data",get:function(){return(0,a.hexConcat)(this._data)}},{key:"length",get:function(){return this._dataLength}},{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",f.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)}}}]),e}();t.Writer=l;var p=function(){function e(t,r,n,o){(0,i.default)(this,e),(0,u.defineReadOnly)(this,"_data",(0,a.arrayify)(t)),(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)(e,[{key:"data",get:function(){return(0,a.hexlify)(this._data)}},{key:"consumed",get:function(){return this._offset}},{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",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(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:"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"; +/*! safe-buffer. MIT License. Feross Aboukhadijeh */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";var n=r(4).Buffer,i=n.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){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":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=f,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=c,this.end=h,t=3;break;default:return this.write=d,void(this.end=l)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(t)}function a(e){return e<=127?0:e>>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 u(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 f(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(30),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 u(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 u=0,f=t;return u+=(f=f+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,u,f){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,u,f){return t+n+o+s+f>>>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(51),i=r(11);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 u(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 u=0,f=t;return u+=(f=f+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,u,f){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,u,f){return t+n+o+s+f>>>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,i=r(0)(r(1)),o="object"===("undefined"==typeof Reflect?"undefined":(0,i.default)(Reflect))?Reflect:null,a=o&&"function"==typeof o.apply?o.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};n=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!=e};function u(){u.init.call(this)}e.exports=u,e.exports.once=function(e,t){return new Promise((function(r,n){function i(r){e.removeListener(t,o),n(r)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",i),r([].slice.call(arguments))}y(e,t,o,{once:!0}),"error"!==t&&function(e,t,r){"function"==typeof e.on&&y(e,"error",t,r)}(e,i,{once:!0})}))},u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var f=10;function c(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+(0,i.default)(e))}function h(e){return void 0===e._maxListeners?u.defaultMaxListeners:e._maxListeners}function d(e,t,r,n){var i,o,a,s;if(c(r),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),o=e._events),a=o[t]),void 0===a)a=o[t]=r,++e._eventsCount;else if("function"==typeof a?a=o[t]=n?[r,a]:[a,r]:n?a.unshift(r):a.push(r),(i=h(e))>0&&a.length>i&&!a.warned){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,s=u,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 u=i[e];if(void 0===u)return!1;if("function"==typeof u)a(u,this,t);else{var f=u.length,c=v(u,f);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},u.prototype.listeners=function(e){return b(this,e,!0)},u.prototype.rawListeners=function(e){return b(this,e,!1)},u.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},u.prototype.listenerCount=m,u.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return null!=e&&n.hasOwnProperty.call(e,t)};var n=r(10)},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,"_base16To36",{enumerable:!0,get:function(){return n._base16To36}}),Object.defineProperty(t,"_base36To16",{enumerable:!0,get:function(){return n._base36To16}}),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(219),i=r(442)},function(e,t,r){"use strict";var n=r(4).Buffer,i=r(96).Transform,o=r(35).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(316),i=r(436);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";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=(0,i.default)(e);return"function"===t||"object"===t&&!!e};var i=n(r(1))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(10),o=n(r(16)),a=i.nativeIsArray||(0,o.default)("Array");t.default=a},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){var n,s;if(t=(0,i.default)(t,r),(0,o.default)(e))for(n=0,s=e.length;n4294967295)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,M=[new l({name:"getBlockByNumber",call:"eth_getBlockByNumber",params:2,inputFormatter:[u.inputBlockNumberFormatter,function(e){return!!e}],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(M,(function(e){e.attachToObject(S),e.requestManager=n.requestManager}));var A=function(a,h,l,M,A){if(!l)return A||(A={unsubscribe:function(){clearInterval(y)}}),(a?c.resolve(a):S.getTransactionReceipt(t)).catch((function(t){A.unsubscribe(),p=!0,f._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,u;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,u=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,u)),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,u);case 22:t.next=25;break;case 24:e.eventEmitter.emit("confirmation",v,r,u);case 25:(h&&o||!h)&&v++,b=!1,v===n.transactionConfirmationBlocks+1&&(A.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&&(A.unsubscribe(),p=!0),f._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()):f._fireError(s.ContractCodeNotStoredError(r),e.eventEmitter,e.reject,null,r),b&&A.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=u.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}f._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),f._fireError(s.TransactionRevertedWithoutReasonError(o),e.eventEmitter,e.reject,null,o);case 30:t.next=33;break;case 32:f._fireError(s.TransactionOutOfGasError(o),e.eventEmitter,e.reject,null,o);case 33:b&&A.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&&(A.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!"),e.eventEmitter,e.reject)):m-1>=n.transactionBlockTimeout&&(A.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!"),e.eventEmitter,e.reject))}));A.unsubscribe(),p=!0,f._fireError({message:"Failed to subscribe to new newBlockHeaders to confirm the transaction receipts.",data:l},e.eventEmitter,e.reject)},x=function(e){var t=function(){y=setInterval(A.bind(null,e,!0),1e3)};this.requestManager.provider.on?S.subscribe("newBlockHeaders",(function(r,n,i){r||!n?t():A(e,!1,r,0,i)})):t()}.bind(this);S.getTransactionReceipt(t).then((function(t){t&&t.blockHash?(e.eventEmitter.listeners("confirmation").length>0&&x(t),A(t,!1)):p||x()})).catch((function(){p||x()}))};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 u;if(e.handleRevert&&r&&e.abiCoder&&(!o&&e.isRevertReasonString(a)?u=a.substring(10):o&&o.data&&(u=o.data.substring(10)),u)){var c=e.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=e.formatOutput(a)}catch(e){o=e}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),t?(n.eventEmitter.emit("transactionHash",a),e._confirmTransaction(n,a,i)):o||n.resolve(a)},u=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(u).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 f=e.params[1];if((r=p(e.params[0],t.accounts))&&r.privateKey){var c=t.accounts.sign(f,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,f.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";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(443)),o=r(13)},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 f(this,void 0,void 0,i.default.mark((function t(){var r,n;return i.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(72)),o=n(r(7)),a=n(r(1)),s=r(17),u=r(450),f=function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},c=new s.Logger(u.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;n1)e(d,r-1,n,u),f=u.length;else for(var l=0,p=d.length;l2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}o("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(e,t,r){var i,o,s,u;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))u="The ".concat(e," ").concat(i," ").concat(a(t,"type"));else{var f=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";u='The "'.concat(e,'" ').concat(f," ").concat(i," ").concat(a(t,"type"))}return u+=". Received type ".concat((0,n.default)(r))}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=i},function(e,t,r){"use strict";(function(t){var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=f;var i=r(246),o=r(250);r(3)(f,i);for(var a=n(o.prototype),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));var i={};function o(e,t,r){r||(r=Error);var n=function(e){var r,n;function i(r,n,i){return e.call(this,function(e,r,n){return"string"==typeof t?t:t(e,r,n)}(r,n,i))||this}return n=e,(r=i).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,i}(r);n.prototype.name=r.name,n.prototype.code=e,i[e]=n}function a(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map((function(e){return String(e)})),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}o("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(e,t,r){var i,o,s,u;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))u="The ".concat(e," ").concat(i," ").concat(a(t,"type"));else{var f=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";u='The "'.concat(e,'" ').concat(f," ").concat(i," ").concat(a(t,"type"))}return u+=". Received type ".concat((0,n.default)(r))}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=i},function(e,t,r){"use strict";(function(t){var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=f;var i=r(271),o=r(275);r(3)(f,i);for(var a=n(o.prototype),s=0;s2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:2===r?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}o("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(e,t,r){var i,o,s,u;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}(e," argument"))u="The ".concat(e," ").concat(i," ").concat(a(t,"type"));else{var f=function(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}(e,".")?"property":"argument";u='The "'.concat(e,'" ').concat(f," ").concat(i," ").concat(a(t,"type"))}return u+=". Received type ".concat((0,n.default)(r))}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=i},function(e,t,r){"use strict";(function(t){var n=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=f;var i=r(305),o=r(309);r(11)(f,i);for(var a=n(o.prototype),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);Object.defineProperty(t,"__esModule",{value:!0}),t.isIE11=t.hasStringTagBug=void 0;var i=r(10),o=n(r(325)),a=i.supportsDataView&&(0,o.default)(new DataView(new ArrayBuffer(8))),s="undefined"!=typeof Map&&(0,o.default)(new Map);t.isIE11=s,t.hasStringTagBug=a},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(!(0,i.default)(e))return[];var t=[];for(var r in e)t.push(r);o.hasEnumBug&&(0,a.default)(e,t);return t};var i=n(r(43)),o=r(10),a=n(r(165))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return i.default.toPath(e)};var i=n(r(24));r(174)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){if(void 0===t)return e;switch(null==r?3:r){case 1:return function(r){return e.call(t,r)};case 3:return function(r,n,i){return e.call(t,r,n,i)};case 4:return function(r,n,i,o){return e.call(t,r,n,i,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){var n=[];return t=(0,i.default)(t,r),(0,o.default)(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n};var i=n(r(22)),o=n(r(45))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,n){(0,i.default)(e)||(e=(0,o.default)(e));("number"!=typeof r||n)&&(r=0);return(0,a.default)(e,t,r)>=0};var i=n(r(25)),o=n(r(52)),a=n(r(190))},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(209),o=r(410);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,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},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(411);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("?"),u=-1!==a&&a127?B+="x":B+=T[C];if(!B.match(p)){var N=j.slice(0,O),L=j.slice(O+1),q=T.match(b);q&&(N.push(q[1]),L.unshift(q[2])),L.length&&(w="/"+L.join(".")+w),this.hostname=N.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=i.toASCII(this.hostname));var F=this.port?":"+this.port:"",D=this.hostname||"";this.host=D+F,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==w[0]&&(w="/"+w))}if(!m[M])for(O=0,I=h.length;O0)&&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(!M.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=M.slice(-1)[0],x=(r.host||e.host||M.length>1)&&("."===A||".."===A)||""===A,E=0,O=M.length;O>=0;O--)"."===(A=M[O])?M.splice(O,1):".."===A?(M.splice(O,1),E++):E&&(M.splice(O,1),E--);if(!_&&!k)for(;E--;E)M.unshift("..");!_||""===M[0]||M[0]&&"/"===M[0].charAt(0)||M.unshift(""),x&&"/"!==M.join("/").substr(-1)&&M.push("");var P,R=""===M[0]||M[0]&&"/"===M[0].charAt(0);S&&(r.hostname=r.host=R?"":M.length?M.shift():"",(P=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=P.shift(),r.host=r.hostname=P.shift()));return(_=_||r.host&&M.length)&&!R&&M.unshift(""),M.length?r.pathname=M.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=u.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(212)).Stream=t,t.Readable=t,t.Writable=r(121),t.Duplex=r(47),t.Transform=r(216),t.PassThrough=r(426)},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(437)},function(e,t,r){"use strict";var n=r(36),i=r(30);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}t.BlockHash=o,o.prototype.update=function(e,t){if(e=n.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=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;i1?(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";Object.defineProperty(t,"__esModule",{value:!0}),t.getAddress=v,t.isAddress=function(e){try{return v(e),!0}catch(e){}return!1},t.getIcapAddress=function(e){var t=(0,i._base16To36)(v(e).substring(2)).toUpperCase();for(;t.length<30;)t="0"+t;return"XE"+m("XE00"+t)+t},t.getContractAddress=function(e){var t=null;try{t=v(e.from)}catch(t){f.throwArgumentError("missing from address","transaction",e)}var r=(0,n.stripZeros)((0,n.arrayify)(i.BigNumber.from(e.nonce).toHexString()));return v((0,n.hexDataSlice)((0,o.keccak256)((0,a.encode)([t,r])),12))},t.getCreate2Address=function(e,t,r){32!==(0,n.hexDataLength)(t)&&f.throwArgumentError("salt must be 32 bytes","salt",t);32!==(0,n.hexDataLength)(r)&&f.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",r);return v((0,n.hexDataSlice)((0,o.keccak256)((0,n.concat)(["0xff",v(e),t,r])),12))};var n=r(13),i=r(40),o=r(49),a=r(221),s=r(17),u=r(445),f=new s.Logger(u.version);function c(e){(0,n.isHexString)(e,20)||f.throwArgumentError("invalid address","address",e);for(var t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40),i=0;i<40;i++)r[i]=t[i].charCodeAt(0);for(var a=(0,n.arrayify)((0,o.keccak256)(r)),s=0;s<40;s+=2)a[s>>1]>>4>=8&&(t[s]=t[s].toUpperCase()),(15&a[s>>1])>=8&&(t[s+1]=t[s+1].toUpperCase());return"0x"+t.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(e){for(var t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((function(e){return h[e]})).join("");t.length>=b;){var r=t.substring(0,b);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 v(e){var t=null;if("string"!=typeof e&&f.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=c(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&f.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)!==m(e)&&f.throwArgumentError("bad icap checksum","address",e),t=(0,i._base36To16)(e.substring(4));t.length<40;)t="0"+t;t=c("0x"+t)}else f.throwArgumentError("invalid address","address",e);return t}},function(e,t,r){"use strict";var n=t;n.utils=r(36),n.common=r(73),n.sha=r(453),n.ripemd=r(457),n.hmac=r(458),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";var n=r(42),i=r(48),o=r(26),a=function(){var e=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(t){t.attachToObject(e),t.setRequestManager(e._requestManager)}))};n.addProviders(a),e.exports=a},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"formatBytes32String",{enumerable:!0,get:function(){return n.formatBytes32String}}),Object.defineProperty(t,"parseBytes32String",{enumerable:!0,get:function(){return n.parseBytes32String}}),Object.defineProperty(t,"nameprep",{enumerable:!0,get:function(){return i.nameprep}}),Object.defineProperty(t,"_toEscapedUtf8String",{enumerable:!0,get:function(){return o._toEscapedUtf8String}}),Object.defineProperty(t,"toUtf8Bytes",{enumerable:!0,get:function(){return o.toUtf8Bytes}}),Object.defineProperty(t,"toUtf8CodePoints",{enumerable:!0,get:function(){return o.toUtf8CodePoints}}),Object.defineProperty(t,"toUtf8String",{enumerable:!0,get:function(){return o.toUtf8String}}),Object.defineProperty(t,"UnicodeNormalizationForm",{enumerable:!0,get:function(){return o.UnicodeNormalizationForm}}),Object.defineProperty(t,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return o.Utf8ErrorFuncs}}),Object.defineProperty(t,"Utf8ErrorReason",{enumerable:!0,get:function(){return o.Utf8ErrorReason}});var n=r(473),i=r(475),o=r(127)},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(46),t.createHash=t.Hash=r(78),t.createHmac=t.Hmac=r(254);var n=r(550),i=Object.keys(n),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return o};var a=r(257);t.pbkdf2=a.pbkdf2,t.pbkdf2Sync=a.pbkdf2Sync;var s=r(552);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 u=r(567);t.DiffieHellmanGroup=u.DiffieHellmanGroup,t.createDiffieHellmanGroup=u.createDiffieHellmanGroup,t.getDiffieHellman=u.getDiffieHellman,t.createDiffieHellman=u.createDiffieHellman,t.DiffieHellman=u.DiffieHellman;var f=r(571);t.createSign=f.createSign,t.Sign=f.Sign,t.createVerify=f.createVerify,t.Verify=f.Verify,t.createECDH=r(606);var c=r(607);t.publicEncrypt=c.publicEncrypt,t.privateEncrypt=c.privateEncrypt,t.publicDecrypt=c.publicDecrypt,t.privateDecrypt=c.privateDecrypt;var h=r(610);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";e.exports=i;var n=r(38).EventEmitter;function i(){n.call(this)}r(3)(i,n),i.Readable=r(70),i.Writable=r(545),i.Duplex=r(546),i.Transform=r(547),i.PassThrough=r(548),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",u));var a=!1;function s(){a||(a=!0,e.end())}function u(){a||(a=!0,"function"==typeof e.destroy&&e.destroy())}function f(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",u),r.removeListener("error",f),e.removeListener("error",f),r.removeListener("end",c),r.removeListener("close",c),e.removeListener("close",c)}return r.on("error",f),e.on("error",f),r.on("end",c),r.on("close",c),e.on("close",c),e.emit("pipe",r),e}},function(e,t,r){"use strict";var n=r(4).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=f[p>>>24]^c[b>>>16&255]^h[m>>>8&255]^d[255&l]^t[v++],s=f[b>>>24]^c[m>>>16&255]^h[l>>>8&255]^d[255&p]^t[v++],u=f[m>>>24]^c[l>>>16&255]^h[p>>>8&255]^d[255&b]^t[v++],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])^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++],u=(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,u>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=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,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=e[a],h=e[c],d=e[h],l=257*e[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^e[e[e[d^c]]],s^=e[e[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function f(e){this._key=i(e),this._reset()}f.blockSize=16,f.keySize=32,f.prototype.blockSize=f.blockSize,f.prototype.keySize=f.keySize,f.prototype._reset=function(){for(var e=this._key,t=e.length,r=t+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/t|0]<<24):t>6&&o%t==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-t]^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(e){return a(e=i(e),this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},f.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},f.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var r=a(e,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)},e.exports.AES=f},function(e,t,r){"use strict";var n=r(4).Buffer,i=r(130);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),u=n.alloc(o||0),f=n.alloc(0);a>0||o>0;){var c=new i;c.update(f),c.update(e),t&&c.update(t),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(e,t,r){"use strict";var n=t;n.version=r(583).version,n.utils=r(31),n.rand=r(137),n.curve=r(278),n.curves=r(141),n.ec=r(588),n.eddsa=r(592)},function(e,t,r){"use strict";var n=r(9),i=r(31),o=i.getNAF,a=i.getJSF,s=i.assert;function u(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 f(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),n=o(t,1,this._bitLength),i=(1<=a;c--)u=(u<<1)+n[c];f.push(u)}for(var h=this.jpoint(null,null,null),d=this.jpoint(null,null,null),l=i;l>0;l--){for(a=0;a=0;f--){for(var c=0;f>=0&&0===a[f];f--)c++;if(f>=0&&c++,u=u.dblp(c),f<0)break;var h=a[f];s(0!==h),u="affine"===e.type?h>0?u.mixedAdd(i[h-1>>1]):u.mixedAdd(i[-h-1>>1].neg()):h>0?u.add(i[h-1>>1]):u.add(i[-h-1>>1].neg())}return"affine"===e.type?u.toP():u},u.prototype._wnafMulAdd=function(e,t,r,n,i){var s,u,f,c=this._wnafT1,h=this._wnafT2,d=this._wnafT3,l=0;for(s=0;s=1;s-=2){var b=s-1,m=s;if(1===c[b]&&1===c[m]){var v=[t[b],null,null,t[m]];0===t[b].y.cmp(t[m].y)?(v[1]=t[b].add(t[m]),v[2]=t[b].toJ().mixedAdd(t[m].neg())):0===t[b].y.cmp(t[m].y.redNeg())?(v[1]=t[b].toJ().mixedAdd(t[m]),v[2]=t[b].add(t[m].neg())):(v[1]=t[b].toJ().mixedAdd(t[m]),v[2]=t[b].toJ().mixedAdd(t[m].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=a(r[b],r[m]);for(l=Math.max(g[0].length,l),d[b]=new Array(l),d[m]=new Array(l),u=0;u=0;s--){for(var S=0;s>=0;){var A=!0;for(u=0;u=0&&S++,k=k.dblp(S),s<0)break;for(u=0;u0?f=h[u][x-1>>1]:x<0&&(f=h[u][-x-1>>1].neg()),k="affine"===f.type?k.mixedAdd(f):k.add(f))}}for(s=0;s=Math.ceil((e.bitLength()+1)/t.step)},f.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 f(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(e,t){s(e.precomputed);var r=e._getDoubles(),n=o(t,1,this._bitLength),i=(1<=a;c--)u=(u<<1)+n[c];f.push(u)}for(var h=this.jpoint(null,null,null),d=this.jpoint(null,null,null),l=i;l>0;l--){for(a=0;a=0;f--){for(var c=0;f>=0&&0===a[f];f--)c++;if(f>=0&&c++,u=u.dblp(c),f<0)break;var h=a[f];s(0!==h),u="affine"===e.type?h>0?u.mixedAdd(i[h-1>>1]):u.mixedAdd(i[-h-1>>1].neg()):h>0?u.add(i[h-1>>1]):u.add(i[-h-1>>1].neg())}return"affine"===e.type?u.toP():u},u.prototype._wnafMulAdd=function(e,t,r,n,i){var s,u,f,c=this._wnafT1,h=this._wnafT2,d=this._wnafT3,l=0;for(s=0;s=1;s-=2){var b=s-1,m=s;if(1===c[b]&&1===c[m]){var v=[t[b],null,null,t[m]];0===t[b].y.cmp(t[m].y)?(v[1]=t[b].add(t[m]),v[2]=t[b].toJ().mixedAdd(t[m].neg())):0===t[b].y.cmp(t[m].y.redNeg())?(v[1]=t[b].toJ().mixedAdd(t[m]),v[2]=t[b].add(t[m].neg())):(v[1]=t[b].toJ().mixedAdd(t[m]),v[2]=t[b].toJ().mixedAdd(t[m].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=a(r[b],r[m]);for(l=Math.max(g[0].length,l),d[b]=new Array(l),d[m]=new Array(l),u=0;u=0;s--){for(var S=0;s>=0;){var A=!0;for(u=0;u=0&&S++,k=k.dblp(S),s<0)break;for(u=0;u0?f=h[u][x-1>>1]:x<0&&(f=h[u][-x-1>>1].neg()),k="affine"===f.type?k.mixedAdd(f):k.add(f))}}for(s=0;s=Math.ceil((e.bitLength()+1)/t.step)},f.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])^(u<<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^(f<<1|c>>>31),r=o^(c<<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=s^(h<<1|d>>>31),r=u^(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=f^(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],G=e[11]<<4|e[10]>>>28,Z=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,R=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,C=e[2]<<1|e[3]>>>31,U=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,X=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,I=e[32]<<13|e[33]>>>19,fe=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,N=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,Y=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,T=e[45]<<29|e[44]>>>3,B=e[44]<<29|e[45]>>>3,A=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,q=e[26]<<25|e[27]>>>7,F=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,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,E=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,D=e[38]<<8|e[39]>>>24,z=e[39]<<8|e[38]>>>24,M=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]=A^~E&P,e[11]=x^~O&R,e[20]=C^~N&q,e[21]=U^~L&F,e[30]=W^~G&J,e[31]=V^~Z&X,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=E^~P&j,e[13]=O^~R&I,e[22]=N^~q&D,e[23]=L^~F&z,e[32]=G^~J&Y,e[33]=Z^~X&$,e[42]=ne^~oe&se,e[43]=ie^~ae&ue,e[4]=g^~_&M,e[5]=w^~k&S,e[14]=P^~j&T,e[15]=R^~I&B,e[24]=q^~D&H,e[25]=F^~z&K,e[34]=J^~Y&Q,e[35]=X^~$&ee,e[44]=oe^~se&fe,e[45]=ae^~ue&ce,e[6]=_^~M&b,e[7]=k^~S&m,e[16]=j^~T&A,e[17]=I^~B&x,e[26]=D^~H&C,e[27]=z^~K&U,e[36]=Y^~Q&W,e[37]=$^~ee&V,e[46]=se^~fe&te,e[47]=ue^~ce&re,e[8]=M^~b&v,e[9]=S^~m&y,e[18]=T^~A&E,e[19]=B^~x&O,e[28]=H^~C&N,e[29]=K^~U&L,e[38]=Q^~W&G,e[39]=ee^~V&Z,e[48]=fe^~te&ne,e[49]=ce^~re&ie,e[0]^=a[n],e[1]^=a[n+1]},u=function(e){return function(t){var r;if("0x"===t.slice(0,2)){r=[];for(var a=2,u=t.length;a>2]|=t[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(e.start=m-f,e.block=u[c],m=0;m>2]|=i[3&m],e.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];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:u(256),keccak512:u(512),keccak256s:u(256),keccak512s:u(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),u=i?i+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],s]:e._events[u].push(s):(e._events[u]=s,e._eventsCount++),e}function u(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}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 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},f.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);n-1?n:o.nextTick;y.WritableState=v;var f=Object.create(r(71));f.inherits=r(3);var c={deprecate:r(122)},h=r(213),d=r(4).Buffer,l=i.Uint8Array||function(){};var p,b=r(214);function m(){}function v(e,t){s=s||r(47),e=e||{};var n=t instanceof s;this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,f=e.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===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?u(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(47),!(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,u=!0;r;)i[s]=r,r.isBuf||(u=!1),r=r.next,s+=1;i.allBuffers=u,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 f=r.chunk,c=r.encoding,h=r.callback;if(g(e,t,!1,t.objectMode?1:f.length,f,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 M(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(M,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}f.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 u=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(5),r(215).setImmediate,r(6))},function(e,t,r){"use strict";(function(t){function r(e){try{if(!t.localStorage)return!1}catch(e){return!1}var r=t.localStorage[e];return null!=r&&"true"===String(r).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}}).call(this,r(6))},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=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,u.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:j(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=f.BigNumber.from(r[1]),r[0]):e}function E(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 O(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=A;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,u.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=O(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?f.BigNumber.from(e.gas):null};return new r(b,n)}},{key:"fromString",value:function(e){var t={type:"constructor"},n=(e=x(e,t)).match(B);return n&&"constructor"===n[1].trim()||p.throwArgumentError("invalid constructor string","value",e),t.inputs=M(n[2].trim(),!1),E(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 R=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,u.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=O(e),n={type:e.type,name:T(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?f.BigNumber.from(e.gas):null};return new r(b,n)}},{key:"fromString",value:function(e){var t={type:"function"},n=(e=x(e,t)).split(" returns ");n.length>2&&p.throwArgumentError("invalid function string","value",e);var i=n[0].match(B);if(i||p.throwArgumentError("invalid function signature","value",e),t.name=i[1].trim(),t.name&&T(t.name),t.inputs=M(i[2],!1),E(i[3].trim(),t),n.length>1){var o=n[1].match(B);""==o[1].trim()&&""==o[3].trim()||p.throwArgumentError("unexpected tokens","value",e),t.outputs=M(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 j(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=R;var I=new RegExp("^[A-Za-z_][A-Za-z0-9_]*$");function T(e){return e&&e.match(I)||p.throwArgumentError('invalid identifier "'.concat(e,'"'),"value",e),e}var B=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(13),a=r(17),s=r(474),u=new a.Logger(s.version);function f(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 u.throwArgumentError("invalid codepoint at offset ".concat(t,"; ").concat(e),"bytes",r)},ignore:f,replace:function(e,t,r,n,o){return e===i.OVERLONG?(n.push(o),0):(n.push(65533),f(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,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+=t(128==(192&a)?i.UNEXPECTED_CONTINUE:i.BAD_PREFIX,n-1,e,r);continue}s=3,u=65535}if(n-1+s>=e.length)n+=t(i.OVERRUN,n-1,e,r);else{for(var f=a&(1<<8-s-1)-1,h=0;h1114111?n+=t(i.OUT_OF_RANGE,n-1-s,e,r,f):f>=55296&&f<=57343?n+=t(i.UTF16_SURROGATE,n-1-s,e,r,f):f<=u?n+=t(i.OVERLONG,n-1-s,e,r,f):r.push(f))}}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&&(u.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 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(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(502),o=r(75),a=r(508);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(531);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(245),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(e,t){return e<>>32-t}function f(e,t,r,n,i,o,a){return u(e+(t&r|~t&n)+i+o|0,a)+t|0}function c(e,t,r,n,i,o,a){return u(e+(t&n|r&~n)+i+o|0,a)+t|0}function h(e,t,r,n,i,o,a){return u(e+(t^r^n)+i+o|0,a)+t|0}function d(e,t,r,n,i,o,a){return u(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=f(r,n,i,o,e[0],3614090360,7),o=f(o,r,n,i,e[1],3905402710,12),i=f(i,o,r,n,e[2],606105819,17),n=f(n,i,o,r,e[3],3250441966,22),r=f(r,n,i,o,e[4],4118548399,7),o=f(o,r,n,i,e[5],1200080426,12),i=f(i,o,r,n,e[6],2821735955,17),n=f(n,i,o,r,e[7],4249261313,22),r=f(r,n,i,o,e[8],1770035416,7),o=f(o,r,n,i,e[9],2336552879,12),i=f(i,o,r,n,e[10],4294925233,17),n=f(n,i,o,r,e[11],2304563134,22),r=f(r,n,i,o,e[12],1804603682,7),o=f(o,r,n,i,e[13],4254626195,12),i=f(i,o,r,n,e[14],2792965006,17),r=c(r,n=f(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(55).codes.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,o){if("function"==typeof r)return e(t,null,r);r||(r={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i>>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,M=0|this._d,S=0|this._e,A=0;A<80;A+=1){var x,E;A<16?(x=b(r,n,i,o,l,e[s[A]],h[0],f[A]),E=g(w,_,k,M,S,e[u[A]],d[0],c[A])):A<32?(x=m(r,n,i,o,l,e[s[A]],h[1],f[A]),E=y(w,_,k,M,S,e[u[A]],d[1],c[A])):A<48?(x=v(r,n,i,o,l,e[s[A]],h[2],f[A]),E=v(w,_,k,M,S,e[u[A]],d[2],c[A])):A<64?(x=y(r,n,i,o,l,e[s[A]],h[3],f[A]),E=m(w,_,k,M,S,e[u[A]],d[3],c[A])):(x=g(r,n,i,o,l,e[s[A]],h[4],f[A]),E=b(w,_,k,M,S,e[u[A]],d[4],c[A])),r=l,l=o,o=p(i,10),i=n,n=x,w=S,S=M,M=p(k,10),k=_,_=E}var O=this._b+i+M|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=O},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(541),n.sha1=r(542),n.sha224=r(543),n.sha256=r(252),n.sha384=r(544),n.sha512=r(253)},function(e,t,r){"use strict";var n=r(30);function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var r=Math.min(this.buffer.length-this.bufferOff,e.length-t),n=0;n0;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 */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";var n=r(58).codes.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,r,o){if("function"==typeof r)return e(t,null,r);r||(r={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function a(e,r){var i=function(e){var t=o(e);return{blinder:t.toRed(n.mont(e.modulus)).redPow(new n(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(r),a=r.modulus.byteLength(),s=new n(e).mul(i.blinder).umod(r.modulus),u=s.toRed(n.mont(r.prime1)),f=s.toRed(n.mont(r.prime2)),c=r.coefficient,h=r.prime1,d=r.prime2,l=u.redPow(r.exponent1).fromRed(),p=f.redPow(r.exponent2).fromRed(),b=l.isub(p).imul(c).umod(h).imul(d);return p.iadd(b).imul(i.unblinder).umod(r.modulus).toArrayLike(t,"be",a)}a.getr=o,e.exports=a}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n,i=t,o=r(91),a=r(278),s=r(31).assert;function u(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 f(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new u(t);return Object.defineProperty(i,e,{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(587)}catch(e){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(e,t,r){"use strict";(function(t){var n,i=r(0)(r(1)),o=r(2),a=o.Buffer,s={};for(n in o)o.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(s[n]=o[n]);var u=s.Buffer={};for(n in a)a.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(u[n]=a[n]);if(s.Buffer.prototype=a.prototype,u.from&&u.from!==Uint8Array.from||(u.from=function(e,t,r){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+(0,i.default)(e));if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+(0,i.default)(e));return a(e,t,r)}),u.alloc||(u.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+(0,i.default)(e));if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=a(e);return t&&0!==t.length?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n}),!s.kStringMaxLength)try{s.kStringMaxLength=t.binding("buffer").kStringMaxLength}catch(e){}s.constants||(s.constants={MAX_LENGTH:s.kMaxLength},s.kStringMaxLength&&(s.constants.MAX_STRING_LENGTH=s.kStringMaxLength)),e.exports=s}).call(this,r(5))},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(144).Reporter,o=r(80).EncoderBuffer,a=r(80).DecoderBuffer,s=r(30),u=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],f=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(u);function c(e,t,r){var n={};this._baseState=n,n.name=r,n.enc=e,n.parent=t||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}e.exports=c;var h=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];c.prototype.clone=function(){var e=this._baseState,t={};h.forEach((function(r){t[r]=e[r]}));var r=new this.constructor(t.parent);return r._baseState=t,r},c.prototype._wrap=function(){var e=this._baseState;f.forEach((function(t){this[t]=function(){var r=new this.constructor(this);return e.children.push(r),r[t].apply(r,arguments)}}),this)},c.prototype._init=function(e){var t=this._baseState;s(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),s.equal(t.children.length,1,"Root node can have only one child")},c.prototype._useArgs=function(e){var t=this._baseState,r=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==r.length&&(s(null===t.children),t.children=r,r.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(s(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if("object"!==(0,n.default)(e)||e.constructor!==Object)return e;var t={};return Object.keys(e).forEach((function(r){r==(0|r)&&(r|=0);var n=e[r];t[n]=r})),t})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(e){c.prototype[e]=function(){var t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}})),u.forEach((function(e){c.prototype[e]=function(){var t=this._baseState,r=Array.prototype.slice.call(arguments);return s(null===t.tag),t.tag=e,this._useArgs(r),this}})),c.prototype.use=function(e){s(e);var t=this._baseState;return s(null===t.use),t.use=e,this},c.prototype.optional=function(){return this._baseState.optional=!0,this},c.prototype.def=function(e){var t=this._baseState;return s(null===t.default),t.default=e,t.optional=!0,this},c.prototype.explicit=function(e){var t=this._baseState;return s(null===t.explicit&&null===t.implicit),t.explicit=e,this},c.prototype.implicit=function(e){var t=this._baseState;return s(null===t.explicit&&null===t.implicit),t.implicit=e,this},c.prototype.obj=function(){var e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},c.prototype.key=function(e){var t=this._baseState;return s(null===t.key),t.key=e,this},c.prototype.any=function(){return this._baseState.any=!0,this},c.prototype.choice=function(e){var t=this._baseState;return s(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},c.prototype.contains=function(e){var t=this._baseState;return s(null===t.use),t.contains=e,this},c.prototype._decode=function(e,t){var r=this._baseState;if(null===r.parent)return e.wrapResult(r.children[0]._decode(e,t));var n,i=r.default,o=!0,s=null;if(null!==r.key&&(s=e.enterKey(r.key)),r.optional){var u=null;if(null!==r.explicit?u=r.explicit:null!==r.implicit?u=r.implicit:null!==r.tag&&(u=r.tag),null!==u||r.any){if(o=this._peekTag(e,u,r.any),e.isError(o))return o}else{var f=e.save();try{null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t),o=!0}catch(e){o=!1}e.restore(f)}}if(r.obj&&o&&(n=e.enterObject()),o){if(null!==r.explicit){var c=this._decodeTag(e,r.explicit);if(e.isError(c))return c;e=c}var h=e.offset;if(null===r.use&&null===r.choice){var d;r.any&&(d=e.save());var l=this._decodeTag(e,null!==r.implicit?r.implicit:r.tag,r.any);if(e.isError(l))return l;r.any?i=e.raw(d):e=l}if(t&&t.track&&null!==r.tag&&t.track(e.path(),h,e.length,"tagged"),t&&t.track&&null!==r.tag&&t.track(e.path(),e.offset,e.length,"content"),r.any||(i=null===r.choice?this._decodeGeneric(r.tag,e,t):this._decodeChoice(e,t)),e.isError(i))return i;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(e,t)})),r.contains&&("octstr"===r.tag||"bitstr"===r.tag)){var p=new a(i);i=this._getUse(r.contains,e._reporterState.obj)._decode(p,t)}}return r.obj&&o&&(i=e.leaveObject(n)),null===r.key||null===i&&!0!==o?null!==s&&e.exitKey(s):e.leaveKey(s,r.key,i),i},c.prototype._decodeGeneric=function(e,t,r){var n=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,n.args[0],r):/str$/.test(e)?this._decodeStr(t,e,r):"objid"===e&&n.args?this._decodeObjid(t,n.args[0],n.args[1],r):"objid"===e?this._decodeObjid(t,null,null,r):"gentime"===e||"utctime"===e?this._decodeTime(t,e,r):"null_"===e?this._decodeNull(t,r):"bool"===e?this._decodeBool(t,r):"objDesc"===e?this._decodeStr(t,e,r):"int"===e||"enum"===e?this._decodeInt(t,n.args&&n.args[0],r):null!==n.use?this._getUse(n.use,t._reporterState.obj)._decode(t,r):t.error("unknown tag: "+e)},c.prototype._getUse=function(e,t){var r=this._baseState;return r.useDecoder=this._use(e,t),s(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},c.prototype._decodeChoice=function(e,t){var r=this._baseState,n=null,i=!1;return Object.keys(r.choice).some((function(o){var a=e.save(),s=r.choice[o];try{var u=s._decode(e,t);if(e.isError(u))return!1;n={type:o,value:u},i=!0}catch(t){return e.restore(a),!1}return!0}),this),i?n:e.error("Choice not matched")},c.prototype._createEncoderBuffer=function(e){return new o(e,this.reporter)},c.prototype._encode=function(e,t,r){var n=this._baseState;if(null===n.default||n.default!==e){var i=this._encodeValue(e,t,r);if(void 0!==i&&!this._skipDefault(i,t,r))return i}},c.prototype._encodeValue=function(e,t,r){var o=this._baseState;if(null===o.parent)return o.children[0]._encode(e,t||new i);var a=null;if(this.reporter=t,o.optional&&void 0===e){if(null===o.default)return;e=o.default}var s=null,u=!1;if(o.any)a=this._createEncoderBuffer(e);else if(o.choice)a=this._encodeChoice(e,t);else if(o.contains)s=this._getUse(o.contains,r)._encode(e,t),u=!0;else if(o.children)s=o.children.map((function(r){if("null_"===r._baseState.tag)return r._encode(null,t,e);if(null===r._baseState.key)return t.error("Child should have a key");var i=t.enterKey(r._baseState.key);if("object"!==(0,n.default)(e))return t.error("Child expected, but input is not object");var o=r._encode(e[r._baseState.key],t,e);return t.leaveKey(i),o}),this).filter((function(e){return e})),s=this._createEncoderBuffer(s);else if("seqof"===o.tag||"setof"===o.tag){if(!o.args||1!==o.args.length)return t.error("Too many args for : "+o.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");var f=this.clone();f._baseState.implicit=null,s=this._createEncoderBuffer(e.map((function(r){var n=this._baseState;return this._getUse(n.args[0],e)._encode(r,t)}),f))}else null!==o.use?a=this._getUse(o.use,r)._encode(e,t):(s=this._encodePrimitive(o.tag,e),u=!0);if(!o.any&&null===o.choice){var c=null!==o.implicit?o.implicit:o.tag,h=null===o.implicit?"universal":"context";null===c?null===o.use&&t.error("Tag could be omitted only for .use()"):null===o.use&&(a=this._encodeComposite(c,u,h,s))}return null!==o.explicit&&(a=this._encodeComposite(o.explicit,!1,"context",a)),a},c.prototype._encodeChoice=function(e,t){var r=this._baseState,n=r.choice[e.type];return n||s(!1,e.type+" not found in "+JSON.stringify(Object.keys(r.choice))),n._encode(e.value,t)},c.prototype._encodePrimitive=function(e,t){var r=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&r.args)return this._encodeObjid(t,r.reverseArgs[0],r.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,r.args&&r.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},c.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},c.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(e)}},function(e,t,r){"use strict";var n=r(3);function i(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function o(e,t){this.path=e,this.rethrow(t)}t.Reporter=i,i.prototype.isError=function(e){return e instanceof o},i.prototype.save=function(){var e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},i.prototype.restore=function(e){var t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},i.prototype.enterKey=function(e){return this._reporterState.path.push(e)},i.prototype.exitKey=function(e){var t=this._reporterState;t.path=t.path.slice(0,e-1)},i.prototype.leaveKey=function(e,t,r){var n=this._reporterState;this.exitKey(e),null!==n.obj&&(n.obj[t]=r)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var e=this._reporterState,t=e.obj;return e.obj={},t},i.prototype.leaveObject=function(e){var t=this._reporterState,r=t.obj;return t.obj=e,r},i.prototype.error=function(e){var t,r=this._reporterState,n=e instanceof o;if(t=n?e:new o(r.path.map((function(e){return"["+JSON.stringify(e)+"]"})).join(""),e.message||e,e.stack),!r.options.partial)throw t;return n||r.errors.push(t),t},i.prototype.wrapResult=function(e){var t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},n(o,Error),o.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},function(e,t,r){"use strict";function n(e){var t={};return Object.keys(e).forEach((function(r){(0|r)==r&&(r|=0);var n=e[r];t[n]=r})),t}t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=n(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=n(t.tag)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.ecdhUnsafe=t.ecdh=t.recover=t.verify=t.sign=t.signatureImportLax=t.signatureImport=t.signatureExport=t.signatureNormalize=t.publicKeyCombine=t.publicKeyTweakMul=t.publicKeyTweakAdd=t.publicKeyVerify=t.publicKeyConvert=t.publicKeyCreate=t.privateKeyTweakMul=t.privateKeyTweakAdd=t.privateKeyModInverse=t.privateKeyNegate=t.privateKeyImport=t.privateKeyExport=t.privateKeyVerify=void 0;var n=r(617),i=r(642),o=r(643);t.privateKeyVerify=function(e){return 32===e.length&&n.privateKeyVerify(Uint8Array.from(e))},t.privateKeyExport=function(e,t){if(32!==e.length)throw new RangeError("private key length is invalid");var r=i.privateKeyExport(e,t);return o.privateKeyExport(e,r,t)},t.privateKeyImport=function(e){if(null!==(e=o.privateKeyImport(e))&&32===e.length&&t.privateKeyVerify(e))return e;throw new Error("couldn't import from DER format")},t.privateKeyNegate=function(t){return e.from(n.privateKeyNegate(Uint8Array.from(t)))},t.privateKeyModInverse=function(t){if(32!==t.length)throw new Error("private key length is invalid");return e.from(i.privateKeyModInverse(Uint8Array.from(t)))},t.privateKeyTweakAdd=function(t,r){return e.from(n.privateKeyTweakAdd(Uint8Array.from(t),r))},t.privateKeyTweakMul=function(t,r){return e.from(n.privateKeyTweakMul(Uint8Array.from(t),Uint8Array.from(r)))},t.publicKeyCreate=function(t,r){return e.from(n.publicKeyCreate(Uint8Array.from(t),r))},t.publicKeyConvert=function(t,r){return e.from(n.publicKeyConvert(Uint8Array.from(t),r))},t.publicKeyVerify=function(e){return(33===e.length||65===e.length)&&n.publicKeyVerify(Uint8Array.from(e))},t.publicKeyTweakAdd=function(t,r,i){return e.from(n.publicKeyTweakAdd(Uint8Array.from(t),Uint8Array.from(r),i))},t.publicKeyTweakMul=function(t,r,i){return e.from(n.publicKeyTweakMul(Uint8Array.from(t),Uint8Array.from(r),i))},t.publicKeyCombine=function(t,r){var i=[];return t.forEach((function(e){i.push(Uint8Array.from(e))})),e.from(n.publicKeyCombine(i,r))},t.signatureNormalize=function(t){return e.from(n.signatureNormalize(Uint8Array.from(t)))},t.signatureExport=function(t){return e.from(n.signatureExport(Uint8Array.from(t)))},t.signatureImport=function(t){return e.from(n.signatureImport(Uint8Array.from(t)))},t.signatureImportLax=function(e){if(0===e.length)throw new RangeError("signature length is invalid");var t=o.signatureImportLax(e);if(null===t)throw new Error("couldn't parse DER signature");return i.signatureImport(t)},t.sign=function(t,r,i){if(null===i)throw new TypeError("options should be an Object");var o=void 0;if(i){if(o={},null===i.data)throw new TypeError("options.data should be a Buffer");if(i.data){if(32!=i.data.length)throw new RangeError("options.data length is invalid");o.data=new Uint8Array(i.data)}if(null===i.noncefn)throw new TypeError("options.noncefn should be a Function");i.noncefn&&(o.noncefn=function(t,r,n,o,a){var s=null!=n?e.from(n):null,u=null!=o?e.from(o):null,f=e.from("");return i.noncefn&&(f=i.noncefn(e.from(t),e.from(r),s,u,a)),new Uint8Array(f)})}var a=n.ecdsaSign(Uint8Array.from(t),Uint8Array.from(r),o);return{signature:e.from(a.signature),recovery:a.recid}},t.verify=function(e,t,r){return n.ecdsaVerify(Uint8Array.from(t),Uint8Array.from(e),r)},t.recover=function(t,r,i,o){return e.from(n.ecdsaRecover(Uint8Array.from(r),i,Uint8Array.from(t),o))},t.ecdh=function(t,r){return e.from(n.ecdh(Uint8Array.from(t),Uint8Array.from(r),{}))},t.ecdhUnsafe=function(t,r,n){if(33!==t.length&&65!==t.length)throw new RangeError("public key length is invalid");if(32!==r.length)throw new RangeError("private key length is invalid");return e.from(i.ecdhUnsafe(Uint8Array.from(t),Uint8Array.from(r),n))}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n,i=t,o=r(148),a=r(298),s=r(32).assert;function u(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 f(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var r=new u(t);return Object.defineProperty(i,e,{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(632)}catch(e){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(e,t,r){"use strict";var n=t;n.utils=r(37),n.common=r(81),n.sha=r(626),n.ripemd=r(630),n.hmac=r(631),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}),t.getLength=t.decode=t.encode=void 0;var n=r(19);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 u(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||"bigint"==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;)u=t(s),f.push(u.data),s=u.remainder;return{data:f,remainder:r.slice(h)}}(u(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=u(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"; /* object-assign (c) Sindre Sorhus @license MIT -*/var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function a(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,s,u=a(t),f=1;f=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&&M(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(M(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,S=["{","}"];(p(r)&&(_=!0,S=["[","]"]),M(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,S)):S[0]+c+S[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]"===S(t)}function _(t){return"object"===(0,n.default)(t)&&null!==t}function k(t){return _(t)&&"[object Date]"===S(t)}function A(t){return _(t)&&("[object Error]"===S(t)||t instanceof Error)}function M(t){return"function"==typeof t}function S(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=M,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(201);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 B(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,M=k>>>13,S=0|a[5],E=8191&S,x=S>>>13,I=0|a[6],O=8191&I,P=I>>>13,B=0|a[7],C=8191&B,R=B>>>13,T=0|a[8],U=8191&T,N=T>>>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,Z=0|s[3],$=8191&Z,J=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,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,$)|0))<<13)|0;f=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(M,q)|0,o=Math.imul(M,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,$)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,J)|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(M,K)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(y,J)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,J)|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(M,W)|0,o=o+Math.imul(M,Y)|0,n=n+Math.imul(w,$)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,J)|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(C,q),i=(i=Math.imul(C,z))+Math.imul(R,q)|0,o=Math.imul(R,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,$)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,J)|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(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,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,$)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(x,$)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,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 Mt=(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)+(Mt>>>26)|0,Mt&=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(C,W)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(O,$)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,J)|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(M,rt)|0,o=o+Math.imul(M,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 St=(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)+(St>>>26)|0,St&=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(C,$)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,J)|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(M,ot)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(U,J)|0)+Math.imul(N,$)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,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(M,ut)|0,o=o+Math.imul(M,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,$),i=(i=Math.imul(L,J))+Math.imul(F,$)|0,o=Math.imul(F,J),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(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(R,rt)|0,o=o+Math.imul(R,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(M,ht)|0,o=o+Math.imul(M,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(C,ot)|0,i=(i=i+Math.imul(C,at)|0)+Math.imul(R,ot)|0,o=o+Math.imul(R,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(M,pt)|0))<<13)|0;f=((o=o+Math.imul(M,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(C,ut)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(R,ut)|0,o=o+Math.imul(R,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(C,ht)|0,i=(i=i+Math.imul(C,dt)|0)+Math.imul(R,ht)|0,o=o+Math.imul(R,dt)|0;var Bt=(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)+(Bt>>>26)|0,Bt&=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 Ct=(f+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,bt)|0)+Math.imul(R,pt)|0))<<13)|0;f=((o=o+Math.imul(R,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Rt=(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)+(Rt>>>26)|0,Rt&=67108863;var Tt=(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)+(Tt>>>26)|0,Tt&=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]=Mt,u[9]=St,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Bt,u[16]=Ct,u[17]=Rt,u[18]=Tt,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 M(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 M(t)},o(M,A),M.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},M.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},M.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)},M.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)},M.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t)}).call(this,r(20)(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(208);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(210),a=r(212),s=r(71),u=r(213),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(0),i=n(r(6)),o=n(r(7)),a=r(17),s=r(5),u=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("")},f=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},c=function(){function t(e){(0,i.default)(this,t),this._iban=e}return(0,o.default)(t,[{key:"isValid",value:function(){return/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban)&&1===f(u(this._iban))}},{key:"isDirect",value:function(){return 34===this._iban.length||35===this._iban.length}},{key:"isIndirect",value:function(){return 20===this._iban.length}},{key:"checksum",value:function(){return this._iban.substr(2,2)}},{key:"institution",value:function(){return this.isIndirect()?this._iban.substr(7,4):""}},{key:"client",value:function(){return this.isIndirect()?this._iban.substr(11):""}},{key:"toAddress",value:function(){if(this.isDirect()){var t=this._iban.substr(4),e=new s(t,36);return a.toChecksumAddress(e.toString(16,20))}return""}},{key:"toString",value:function(){return this._iban}}],[{key:"toAddress",value:function(e){if(!(e=new t(e)).isDirect())throw new Error("IBAN is indirect and can't be converted");return e.toAddress()}},{key:"toIban",value:function(e){return t.fromAddress(e).toString()}},{key:"fromAddress",value:function(e){if(!a.isAddress(e))throw new Error("Provided address is not a valid address: "+e);e=e.replace("0x","").replace("0X","");var r=function(t,e){for(var r=t;r.length<2*e;)r="0"+r;return r}(new s(e,16).toString(36),15);return t.fromBban(r.toUpperCase())}},{key:"fromBban",value:function(e){return new t("XE"+("0"+(98-f(u("XE00"+e)))).slice(-2)+e)}},{key:"createIndirect",value:function(e){return t.fromBban("ETH"+e.institution+e.identifier)}},{key:"isValid",value:function(e){return new t(e).isValid()}}]),t}();t.exports=c},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 M(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function S(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=S(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(M(c+m%b,0))),u=y(m/b);w.push(v(M(u,0))),o=S(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(72))&&r(72))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(20)(t),r(8))},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(8))},function(t,e,r){"use strict";(function(t,n,i){var o=r(111),a=r(3),s=r(41),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(8),r(2).Buffer)},function(t,e,r){"use strict";(function(e,n){var i=r(55);t.exports=g;var o,a=r(105);g.ReadableState=v;r(75).EventEmitter;var s=function(t,e){return t.listeners(e).length},u=r(114),f=r(4).Buffer,c=e.Uint8Array||function(){};var h=r(42);h.inherits=r(3);var d=r(233),l=void 0;l=d&&d.debuglog?d.debuglog("stream"):function(){};var p,b=r(234),m=r(115);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(56).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):S(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(M,t):M(t))}function M(t){l("emit readable"),t.emit("readable"),O(t)}function S(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 B(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(C,e,t))}function C(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function R(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?B(this):A(this),null;if(0===(t=k(t,e))&&e.ended)return 0===e.length&&B(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&&B(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!==R(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(236),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(8))},function(t,e,r){"use strict";t.exports=a;var n=r(31),i=r(42);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(15),o=r(258),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(25).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(25),i=r(43),o=r(123),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(17),s=r(129).AbiCoder,u=r(129).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(81),i=r(132),o=r(291)},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(7)),a=r(13),s=r(37),u=r(15),f=r(44),c=r(24),h=r(279),d=r(133),l=r(281),p=r(134),b=r(283),m=r(284),y=r(285),v=r(286),g=r(290),w=r(81),_=new u.Logger(f.version),k=new RegExp(/^bytes([0-9]*)$/),A=new RegExp(/^(u?int)([0-9]*)$/),M=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=M;var S=new M;e.defaultAbiCoder=S},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(7)),a=n(r(18)),s=n(r(19)),u=n(r(16)),f=n(r(1)),c=r(15),h=r(44),d=r(24),l=r(280);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(45);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(140);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(38),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(38),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,M=0|this._el,S=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],B=l(O,P),C=p(P,O),R=b(O=e[I-4],P=e[I-4+1]),T=m(P,O),U=e[I-14],N=e[I-14+1],j=e[I-32],L=e[I-32+1],F=C+N|0,D=B+U+y(F,C)|0;D=(D=D+R+y(F=F+T|0,T)|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,M),W=d(M,s),Y=a[q],Z=a[q+1],$=f(s,u,v),J=f(M,S,E),X=x+W|0,Q=g+G+y(X,x)|0;Q=(Q=(Q=Q+$+y(X=X+J|0,J)|0)+Y+y(X=X+Z|0,Z)|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=S,u=s,S=M,s=o+Q+y(M=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+M|0,this._fl=this._fl+S|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,M)|0,this._fh=this._fh+u+y(this._fl,S)|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(352),o=r(28),a=r(4).Buffer,s=r(149),u=r(86),f=r(87),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(149),i=r(86),o=r(87),a=r(152),s=r(153),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(91);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(68),n.short=r(379),n.mont=r(380),n.edwards=r(381)},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(3),o=r(51).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(395)},function(t,e,r){"use strict";var n=r(3),i=r(50),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(94);e.secp256k1=i;var o=r(53),a=r(35);e.BN=a;var s=r(97);e.rlp=s,Object.assign(e,o),n(r(451)),n(r(452)),n(r(99)),n(r(459)),n(r(54)),n(r(460))},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(420),o=r(421),a=r(422),s=r(427);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(39),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(39),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,M=0|this._el,S=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],B=l(O,P),C=p(P,O),R=b(O=e[I-4],P=e[I-4+1]),T=m(P,O),U=e[I-14],N=e[I-14+1],j=e[I-32],L=e[I-32+1],F=C+N|0,D=B+U+y(F,C)|0;D=(D=D+R+y(F=F+T|0,T)|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,M),W=d(M,s),Y=a[q],Z=a[q+1],$=f(s,u,v),J=f(M,S,E),X=x+W|0,Q=g+G+y(X,x)|0;Q=(Q=(Q=Q+$+y(X=X+J|0,J)|0)+Y+y(X=X+Z|0,Z)|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=S,u=s,S=M,s=o+Q+y(M=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+M|0,this._fl=this._fl+S|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,M)|0,this._fh=this._fh+u+y(this._fl,S)|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(26),i=r(52),o=r(185),a=r(36),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=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=f),h(n,e,n.depth)}function f(e,t){var r=u.styles[t];return r?"["+u.colors[r][0]+"m"+e+"["+u.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)),M(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 e.stylize("[Function"+u+"]","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(M(r))return d(r)}var f,c="",_=!1,A=["{","}"];(p(r)&&(_=!0,A=["[","]"]),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)),M(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),f=_?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]}(f,c,A)):A[0]+c+A[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function l(e,t,r,n,i,o){var a,s,u;if((u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),P(n,i)||(a="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=m(r)?h(e,u.value,null):h(e,u.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]"===A(e)}function _(e){return"object"===(0,n.default)(e)&&null!==e}function k(e){return _(e)&&"[object Date]"===A(e)}function M(e){return _(e)&&("[object Error]"===A(e)||e instanceof Error)}function S(e){return"function"==typeof e}function A(e){return Object.prototype.toString.call(e)}function x(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=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"},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=M,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(317);var E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function O(){var e=new Date,t=[x(e.getHours()),x(e.getMinutes()),x(e.getSeconds())].join(":");return[e.getDate(),E[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",O(),t.format.apply(t,arguments))},t.inherits=r(318),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 R="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function j(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(R&&e[R]){var t;if("function"!=typeof(t=e[R]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,R,{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=0&&r<=n.MAX_ARRAY_INDEX}};var n=r(10)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t=function(e){for(var t={},r=e.length,n=0;n":">",'"':""","'":"'","`":"`"}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(24)).default.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,n,a){if(!(n instanceof t))return e.apply(r,a);var s=(0,i.default)(e.prototype),u=e.apply(s,a);return(0,o.default)(u)?u:s};var i=n(r(171)),o=n(r(43))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(23)),o=n(r(27)),a=n(r(182)),s=(0,i.default)((function(e,t,r){if(!(0,o.default)(e))throw new TypeError("Bind must be called on a function");var n=(0,i.default)((function(i){return(0,a.default)(e,n,t,this,r.concat(i))}));return n}));t.default=s},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(23)).default)((function(e,t,r){return setTimeout((function(){return e.apply(null,r)}),t)}));t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){t=(0,i.default)(t,r);for(var n,a=(0,o.default)(e),s=0,u=a.length;s0?0:a-1;s>=0&&s0?f=u>=0?u:Math.max(u+c,f):c=u>=0?Math.min(u+1,c):u+c+1;else if(r&&u&&c)return n[u=r(n,s)]===s?u:-1;if(s!=s)return(u=t(o.slice.call(n,f,c),a.default))>=0?u+f:-1;for(u=e>0?f:c-1;u>=0&&u0?0:u-1;for(a||(n=t[s?s[f]:f],f+=e);f>=0&&f=3;return t(e,(0,a.default)(r,i,4),n,o)}};var i=n(r(25)),o=n(r(15)),a=n(r(66))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){var n,f,c=-1/0,h=-1/0;if(null==t||"number"==typeof t&&"object"!=(0,i.default)(e[0])&&null!=e){e=(0,o.default)(e)?e:(0,a.default)(e);for(var d=0,l=e.length;dc&&(c=n)}else t=(0,s.default)(t,r),(0,u.default)(e,(function(e,r,n){((f=t(e,r,n))>h||f===-1/0&&c===-1/0)&&(c=e,h=f)}));return c};var i=n(r(1)),o=n(r(25)),a=n(r(52)),s=n(r(22)),u=n(r(45))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){if(null==t||r)return(0,i.default)(e)||(e=(0,a.default)(e)),e[(0,u.default)(e.length-1)];var n=(0,i.default)(e)?(0,o.default)(e):(0,a.default)(e),f=(0,s.default)(n);t=Math.max(Math.min(t,f),0);for(var c=f-1,h=0;h1&&(n=(0,a.default)(n,t[1])),t=(0,s.default)(e)):(n=u.default,t=(0,f.default)(t,!1,!1),e=Object(e));for(var i=0,c=t.length;i7&&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:y,isHexStrict:v,stripHexPrefix:function(e){return 0!==e&&y(e)?e.replace(/^(-)?0x/i,"$1"):e},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:w,sha3Raw:function(e){return null===(e=w(e))?g:e}}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n=r(0),i=n(r(7)),o=n(r(8)),a=r(26),s=r(9),u=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("")},f=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},c=function(){function e(t){(0,i.default)(this,e),this._iban=t}return(0,o.default)(e,[{key:"isValid",value:function(){return/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban)&&1===f(u(this._iban))}},{key:"isDirect",value:function(){return 34===this._iban.length||35===this._iban.length}},{key:"isIndirect",value:function(){return 20===this._iban.length}},{key:"checksum",value:function(){return this._iban.substr(2,2)}},{key:"institution",value:function(){return this.isIndirect()?this._iban.substr(7,4):""}},{key:"client",value:function(){return this.isIndirect()?this._iban.substr(11):""}},{key:"toAddress",value:function(){if(this.isDirect()){var e=this._iban.substr(4),t=new s(e,36);return a.toChecksumAddress(t.toString(16,20))}return""}},{key:"toString",value:function(){return this._iban}}],[{key:"toAddress",value:function(t){if(!(t=new e(t)).isDirect())throw new Error("IBAN is indirect and can't be converted");return t.toAddress()}},{key:"toIban",value:function(t){return e.fromAddress(t).toString()}},{key:"fromAddress",value:function(t){if(!a.isAddress(t))throw new Error("Provided address is not a valid address: "+t);t=t.replace("0x","").replace("0X","");var r=function(e,t){for(var r=e;r.length<2*t;)r="0"+r;return r}(new s(t,16).toString(36),15);return e.fromBban(r.toUpperCase())}},{key:"fromBban",value:function(t){return new e("XE"+("0"+(98-f(u("XE00"+t)))).slice(-2)+t)}},{key:"createIndirect",value:function(t){return e.fromBban("ETH"+t.institution+t.identifier)}},{key:"isValid",value:function(t){return new e(t).isValid()}}]),e}();e.exports=c},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,u="object"==(0,o.default)(e)&&e&&!e.nodeType&&e,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"},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 A(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 x(e){var t,r,n,i,o,a,s,u,f,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"),((u=(h=e.charCodeAt(i++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||u>v((d-b)/a))&&g("overflow"),b+=u*a,!(u<(f=s<=y?1:s>=y+26?26:s-y));s+=36)a>v(d/(c=36-f))&&g("overflow"),a*=c;y=A(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 M(l)}function E(e){var t,r,n,i,o,a,s,u,f,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(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(y(S(c+m%b,0))),u=v(m/b);w.push(y(S(u,0))),o=A(r,p,n==i),r=0,++n}++r,++t}return w.join("")}if(c={version:"1.4.1",ucs2:{decode:k,encode:M},decode:x,encode:E,toASCII:function(e){return _(e,(function(e){return p.test(e)?"xn--"+E(e):e}))},toUnicode:function(e){return _(e,(function(e){return l.test(e)?x(e.slice(4).toLowerCase()):e}))}},"object"==(0,o.default)(r(118))&&r(118))void 0===(i=function(){return c}.call(t,r,t,e))||(e.exports=i);else if(s&&u)if(e.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(29)(e),r(6))},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(6))},function(e,t,r){"use strict";(function(e,n,i){var o=r(210),a=r(3),s=r(70),u=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},f=t.IncomingMessage=function(t,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(){e.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(e,t){f.headers[t.toLowerCase()]=e,f.rawHeaders.push(t,e)})),o.writableStream){var c=new WritableStream({write:function(e){return new Promise((function(t,r){f._destroyed?r():f.push(new i(e))?t():f._resumeFetch=t}))},close:function(){n.clearTimeout(u),f._destroyed||f.push(null)},abort:function(e){f._destroyed||f.emit("error",e)}});try{return void r.body.pipeTo(c).catch((function(e){n.clearTimeout(u),f._destroyed||f.emit("error",e)}))}catch(e){}}var h=r.body.getReader();!function e(){h.read().then((function(t){if(!f._destroyed){if(t.done)return n.clearTimeout(u),void f.push(null);f.push(new i(t.value)),e()}})).catch((function(e){n.clearTimeout(u),f._destroyed||f.emit("error",e)}))}()}else{if(f._xhr=t,f._pos=0,f.url=t.responseURL,f.statusCode=t.status,f.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===f.headers[r]&&(f.headers[r]=[]),f.headers[r].push(t[2])):void 0!==f.headers[r]?f.headers[r]+=", "+t[2]:f.headers[r]=t[2],f.rawHeaders.push(t[1],t[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 e=this._resumeFetch;e&&(this._resumeFetch=null,e())},f.prototype._onXHRProgress=function(){var e=this,t=e._xhr,r=null;switch(e._mode){case"text:vbarray":if(t.readyState!==u.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(f.result.slice(e._pos)))),e._pos=f.result.byteLength)},f.onload=function(){e.push(null)},f.readAsArrayBuffer(r)}e._xhr.readyState===u.DONE&&"ms-stream"!==e._mode&&e.push(null)}}).call(this,r(5),r(6),r(2).Buffer)},function(e,t,r){"use strict";(function(t,n){var i=r(87);e.exports=g;var o,a=r(204);g.ReadableState=y;r(38).EventEmitter;var s=function(e,t){return e.listeners(t).length},u=r(213),f=r(4).Buffer,c=t.Uint8Array||function(){};var h=Object.create(r(71));h.inherits=r(3);var d=r(422),l=void 0;l=d&&d.debuglog?d.debuglog("stream"):function(){};var p,b=r(423),m=r(214);h.inherits(g,u);var v=["error","close","destroy","pause","resume"];function y(e,t){e=e||{};var n=t instanceof(o=o||r(47));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(35).StringDecoder),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function g(e){if(o=o||r(47),!(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)),u.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,M(e)}(e,a)):(i||(o=function(e,t){var r;n=t,f.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)===f.prototype||(t=function(e){return f.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):A(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 M(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 A(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(x,e,t))}function x(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=f.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 j(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(I,t,e))}function I(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function T(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?j(this):M(this),null;if(0===(e=k(e,t))&&t.ended)return 0===t.length&&j(this),null;var n,i=t.needReadable;return l("need readable",i),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&j(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 u=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?c:g;function f(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",f),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(u):r.once("end",u),e.on("unpipe",f);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!==T(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(425),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(6))},function(e,t,r){"use strict";e.exports=a;var n=r(47),i=Object.create(r(71));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.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,{})),v(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(d,b(t)):t.match(/^-?[0-9]+$/)?new e(d,b(new c(t))):h.throwArgumentError("invalid BigNumber string","value",t);if("number"==typeof t)return t%1&&y("underflow","BigNumber.from",t),(t>=9007199254740991||t<=-9007199254740991)&&y("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 h.throwArgumentError("invalid BigNumber value","value",t)}},{key:"isBigNumber",value:function(e){return!(!e||!e._isBigNumber)}}]),e}();function b(e){if("string"!=typeof e)return b(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&h.throwArgumentError("invalid hex","value",e),"0x00"===(e=b(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 m(e){return p.from(b(e))}function v(e){var t=p.from(e).toHexString();return"-"===t[0]?new c("-"+t.substring(3),16):new c(t.substring(2),16)}function y(e,t,r){var n={fault:e,operation:t};return null!=r&&(n.value=r),h.throwError(e,u.Logger.errors.NUMERIC_FAULT,n)}t.BigNumber=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="bignumber/5.1.1"},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 u=s(o.length);return u.unshift(183+u.length),u.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(13),i=r(17),o=r(444),a=new i.Logger(o.version);function s(e){for(var t=[];e;)t.unshift(255&e),e>>=8;return t}function u(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=u(e,t+1,r);return t+1+r+o>e.length&&a.throwError("data long segment too short",i.Logger.errors.BUFFER_OVERRUN,{}),f(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,{}),f(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=u(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(36).rotr32;function i(e,t,r){return e&t^~e&r}function o(e,t,r){return e&t^e&r^t&r}function a(e,t,r){return e^t^r}t.ft_1=function(e,t,r,n){return 0===e?i(t,r,n):1===e||3===e?a(t,r,n):2===e?o(t,r,n):void 0},t.ch32=i,t.maj32=o,t.p32=a,t.s0_256=function(e){return n(e,2)^n(e,13)^n(e,22)},t.s1_256=function(e){return n(e,6)^n(e,11)^n(e,25)},t.g0_256=function(e){return n(e,7)^n(e,18)^e>>>3},t.g1_256=function(e){return n(e,17)^n(e,19)^e>>>10}},function(e,t,r){"use strict";var n=r(36),i=r(73),o=r(222),a=r(30),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,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(;n0&&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(f.ContractMissingDeployDataError());throw f.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 f.ContractEventDoesNotExistError(i);if(!a.isAddress(this.options.address))throw f.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 f.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:[u.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:[u.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 f.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 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."),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:[u.inputCallFormatter.call(this._parent,t.options)],callback:t.callback};return"call"===t.type?(s.params.push(u.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:[u.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:[u.inputCallFormatter,u.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(f.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:[u.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(14),a=r(26),s=r(228).AbiCoder,u=r(228).ParamType,f=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(f._getCoder(u.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])}))}(f._getCoder(u.from(o)),t)}return t})),f.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=Object.assign({},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]*)$/),u=new RegExp(/^(u?int)([0-9]*)\[\]$/);if(a.isBN(t)||a.isBigNumber(t))return t.toString(10);if(e.match(o)||e.match(u))return t.map((function(t){return r.formatParam(e.replace("[]",""),t)}));var f=e.match(s);if(f){var c=parseInt(f[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=f.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 u=t,f=u?this.decodeParametersWith(i,u,!0):[],h=new c;return h.__length__=0,e.forEach((function(e,t){h[t]="string"===e.type?"":null,void 0!==f[t]&&(h[t]=f[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(126),i=r(231),o=r(477)},function(e,t,r){"use strict";function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,n(t,r)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},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},e.exports.default=e.exports,e.exports.__esModule=!0},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(7)),o=n(r(8)),a=r(13),s=r(50),u=r(17),f=r(74),c=r(33),h=r(465),d=r(232),l=r(467),p=r(233),b=r(469),m=r(470),v=r(471),y=r(472),g=r(476),w=r(126),_=new u.Logger(f.version),k=new RegExp(/^bytes([0-9]*)$/),M=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(M);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",u.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 A=new S;t.defaultAbiCoder=A},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(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18)),f=n(r(1)),c=r(17),h=r(74),d=r(33),l=r(466);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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,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,f.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 u=o.writeUpdatableValue();s.push((function(e){u(e+i)}))}else e.encode(o,r)})),s.forEach((function(e){e(o.length)}));var u=e.appendWriter(o);return u+=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:"")+"]",u=-1===n||e.dynamic;return(a=t.call(this,"array",s,o,u)).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=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(75);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(240);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}},e.exports.default=e.exports,e.exports.__esModule=!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=u.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:"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(4).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 f=(a-o)*c+1>>>0,h=new Uint8Array(f);o!==a;){for(var d=t[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(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";(function(t,n){var i;e.exports=A,A.ReadableState=S;r(38).EventEmitter;var o=function(e,t){return e.listeners(t).length},a=r(247),s=r(2).Buffer,u=t.Uint8Array||function(){};var f,c=r(534);f=c&&c.debuglog?c.debuglog("stream"):function(){};var h,d,l,p=r(535),b=r(248),m=r(249).getHighWaterMark,v=r(55).codes,y=v.ERR_INVALID_ARG_TYPE,g=v.ERR_STREAM_PUSH_AFTER_EOF,w=v.ERR_METHOD_NOT_IMPLEMENTED,_=v.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(3)(A,a);var k=b.errorOrDestroy,M=["error","close","destroy","pause","resume"];function S(e,t,n){i=i||r(56),e=e||{},"boolean"!=typeof n&&(n=t instanceof i),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=m(this,e,"readableHighWaterMark",n),this.buffer=new p,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.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=r(35).StringDecoder),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function A(e){if(i=i||r(56),!(this instanceof A))return new A(e);var t=this instanceof i;this._readableState=new S(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function x(e,t,r,n,i){f("readableAddChunk",t);var o,a=e._readableState;if(null===t)a.reading=!1,function(e,t){if(f("onEofChunk"),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,t.sync?P(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,R(e)))}(e,a);else if(i||(o=function(e,t){var r;n=t,s.isBuffer(n)||n instanceof u||"string"==typeof t||void 0===t||e.objectMode||(r=new y("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(a,t)),o)k(e,o);else if(a.objectMode||t&&t.length>0)if("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)a.endEmitted?k(e,new _):E(e,a,t,!0);else if(a.ended)k(e,new g);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):j(e,a)):E(e,a,t,!1)}else n||(a.reading=!1,j(e,a));return!a.ended&&(a.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(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 P(e){var t=e._readableState;f("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(f("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(R,e))}function R(e){var t=e._readableState;f("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,U(e)}function j(e,t){t.readingMore||(t.readingMore=!0,n.nextTick(I,e,t))}function I(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function B(e){f("readable nexttick read 0"),e.read(0)}function C(e,t){f("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),U(e),t.flowing&&!t.reading&&e.read(0)}function U(e){var t=e._readableState;for(f("flow",t.flowing);t.flowing&&null!==e.read(););}function N(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function L(e){var t=e._readableState;f("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(q,t,e))}function q(e,t){if(f("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function F(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return f("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?L(this):P(this),null;if(0===(e=O(e,t))&&t.ended)return 0===t.length&&L(this),null;var n,i=t.needReadable;return f("need readable",i),(0===t.length||t.length-e0?N(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&L(this)),null!==n&&this.emit("data",n),n},A.prototype._read=function(e){k(this,new w("_read()"))},A.prototype.pipe=function(e,t){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,f("pipe count=%d opts=%j",i.pipesCount,t);var a=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?u:m;function s(t,n){f("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,f("cleanup"),e.removeListener("close",p),e.removeListener("finish",b),e.removeListener("drain",c),e.removeListener("error",l),e.removeListener("unpipe",s),r.removeListener("end",u),r.removeListener("end",m),r.removeListener("data",d),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}function u(){f("onend"),e.end()}i.endEmitted?n.nextTick(a):r.once("end",a),e.on("unpipe",s);var c=function(e){return function(){var t=e._readableState;f("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,U(e))}}(r);e.on("drain",c);var h=!1;function d(t){f("ondata");var n=e.write(t);f("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==F(i.pipes,e))&&!h&&(f("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function l(t){f("onerror",t),m(),e.removeListener("error",l),0===o(e,"error")&&k(e,t)}function p(){e.removeListener("finish",b),m()}function b(){f("onfinish"),e.removeListener("close",p),m()}function m(){f("unpipe"),r.unpipe(e)}return r.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",l),e.once("close",p),e.once("finish",b),e.emit("pipe",r),i.flowing||(f("pipe resume"),r.resume()),e},A.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;o0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,f("on readable",i.length,i.reading),i.length?P(this):i.reading||n.nextTick(B,this))),r},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(e,t){var r=a.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(T,this),r},A.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(T,this),t},A.prototype.resume=function(){var e=this._readableState;return e.flowing||(f("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(C,e,t))}(this,e)),e.paused=!1,this},A.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(f("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(f("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(e,t,r){r(new b("_write()"))},A.prototype._writev=null,A.prototype.end=function(e,t,r){var i=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||function(e,t,r){t.ending=!0,j(e,t),r&&(t.finished?n.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,i,r),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),A.prototype.destroy=h.destroy,A.prototype._undestroy=h.undestroy,A.prototype._destroy=function(e,t){t(e)}}).call(this,r(6),r(5))},function(e,t,r){"use strict";e.exports=c;var n=r(55).codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r(56);function f(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length>>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(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(e){for(var t,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,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(u)+f(u,p,b)+a[y]+r[y]|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 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=u},function(e,t,r){"use strict";var n=r(3),i=r(57),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(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(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(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,u=0|this._fh,y=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,M=0|this._dl,S=0|this._el,A=0|this._fl,x=0|this._gl,E=0|this._hl,O=0;O<32;O+=2)t[O]=e.readInt32BE(4*O),t[O+1]=e.readInt32BE(4*O+4);for(;O<160;O+=2){var P=t[O-30],R=t[O-30+1],j=l(P,R),I=p(R,P),T=b(P=t[O-4],R=t[O-4+1]),B=m(R,P),C=t[O-14],U=t[O-14+1],N=t[O-32],L=t[O-32+1],q=I+U|0,F=j+C+v(q,I)|0;F=(F=F+T+v(q=q+B|0,B)|0)+N+v(q=q+L|0,L)|0,t[O]=F,t[O+1]=q}for(var D=0;D<160;D+=2){F=t[D],q=t[D+1];var z=c(r,n,i),H=c(w,_,k),K=h(r,w),W=h(w,r),V=d(s,S),G=d(S,s),Z=a[D],J=a[D+1],X=f(s,u,y),Y=f(S,A,x),$=E+G|0,Q=g+V+v($,E)|0;Q=(Q=(Q=Q+X+v($=$+Y|0,Y)|0)+Z+v($=$+J|0,J)|0)+F+v($=$+q|0,q)|0;var ee=W+H|0,te=K+z+v(ee,W)|0;g=y,E=x,y=u,x=A,u=s,A=S,s=o+Q+v(S=M+$|0,M)|0,o=i,M=k,i=n,k=_,n=r,_=w,r=Q+te+v(w=$+ee|0,$)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+M|0,this._el=this._el+S|0,this._fl=this._fl+A|0,this._gl=this._gl+x|0,this._hl=this._hl+E|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,M)|0,this._eh=this._eh+s+v(this._el,S)|0,this._fh=this._fh+u+v(this._fl,A)|0,this._gh=this._gh+y+v(this._gl,x)|0,this._hh=this._hh+g+v(this._hl,E)|0},u.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=u},function(e,t,r){"use strict";var n=r(3),i=r(549),o=r(41),a=r(4).Buffer,s=r(255),u=r(132),f=r(133),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 u:f(e)).update(t).digest():t.lengthn||t!=t)throw new TypeError("Bad key length")}},function(e,t,r){"use strict";(function(t,r){var n;if(t.process&&t.process.browser)n="utf-8";else if(t.process&&t.process.version){n=parseInt(r.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else n="utf-8";e.exports=n}).call(this,r(6),r(5))},function(e,t,r){"use strict";var n=r(255),i=r(132),o=r(133),a=r(4).Buffer,s=r(258),u=r(259),f=r(261),c=a.alloc(128),h={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function d(e,t,r){var s=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),u="sha512"===e||"sha384"===e?128:64;t.length>u?t=s(t):t.length>>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,u=0;u>>n[u]&1;for(u=s;u>>n[u]&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.length>>1];r=o.r28shl(r,s),i=o.r28shl(i,s),o.pc2(r,i,e.keys,a)}},u.prototype._update=function(e,t,r,n){var i=this._desState,a=o.readUInt32BE(e,t),s=o.readUInt32BE(e,t+4);o.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],o.writeUInt32BE(r,a,n),o.writeUInt32BE(r,s,n+4)},u.prototype._pad=function(e,t){for(var r=e.length-t,n=t;n>>0,a=d}o.rip(s,a,n,i)},u.prototype._decrypt=function(e,t,r,n,i){for(var a=r,s=t,u=e.keys.length-2;u>=0;u-=2){var f=e.keys[u],c=e.keys[u+1];o.expand(a,e.tmp,0),f^=e.tmp[0],c^=e.tmp[1];var h=o.substitute(f,c),d=a;a=(s^o.permute(h))>>>0,s=d}o.rip(a,s,n,i)}},function(e,t,r){"use strict";var n=r(79),i=r(4).Buffer,o=r(265);function a(e){var t=e._cipher.encryptBlockRaw(e._prev);return o(e._prev),t}t.encrypt=function(e,t){var r=Math.ceil(t.length/16),o=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*r)]);for(var s=0;se;)r.ishrn(1);if(r.isEven()&&r.iadd(s),r.testn(1)||r.iadd(u),t.cmp(u)){if(!t.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)&&v(p)&&v(r)&&a.test(p)&&a.test(r))return r}}},function(e,t,r){"use strict";var n=r(9),i=r(137);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),u=0;!s.testn(u);u++);for(var f=e.shrn(u),c=s.toRed(o);t>0;t--){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;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(u);if(0!==d.cmp(o)&&0!==d.cmp(f)){for(var l=1;l0)if("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)a.endEmitted?k(e,new _):E(e,a,t,!0);else if(a.ended)k(e,new g);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):j(e,a)):E(e,a,t,!1)}else n||(a.reading=!1,j(e,a));return!a.ended&&(a.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(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 P(e){var t=e._readableState;f("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(f("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(R,e))}function R(e){var t=e._readableState;f("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,U(e)}function j(e,t){t.readingMore||(t.readingMore=!0,n.nextTick(I,e,t))}function I(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function B(e){f("readable nexttick read 0"),e.read(0)}function C(e,t){f("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),U(e),t.flowing&&!t.reading&&e.read(0)}function U(e){var t=e._readableState;for(f("flow",t.flowing);t.flowing&&null!==e.read(););}function N(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function L(e){var t=e._readableState;f("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(q,t,e))}function q(e,t){if(f("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function F(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return f("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?L(this):P(this),null;if(0===(e=O(e,t))&&t.ended)return 0===t.length&&L(this),null;var n,i=t.needReadable;return f("need readable",i),(0===t.length||t.length-e0?N(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&L(this)),null!==n&&this.emit("data",n),n},A.prototype._read=function(e){k(this,new w("_read()"))},A.prototype.pipe=function(e,t){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,f("pipe count=%d opts=%j",i.pipesCount,t);var a=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?u:m;function s(t,n){f("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,f("cleanup"),e.removeListener("close",p),e.removeListener("finish",b),e.removeListener("drain",c),e.removeListener("error",l),e.removeListener("unpipe",s),r.removeListener("end",u),r.removeListener("end",m),r.removeListener("data",d),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}function u(){f("onend"),e.end()}i.endEmitted?n.nextTick(a):r.once("end",a),e.on("unpipe",s);var c=function(e){return function(){var t=e._readableState;f("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,U(e))}}(r);e.on("drain",c);var h=!1;function d(t){f("ondata");var n=e.write(t);f("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==F(i.pipes,e))&&!h&&(f("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function l(t){f("onerror",t),m(),e.removeListener("error",l),0===o(e,"error")&&k(e,t)}function p(){e.removeListener("finish",b),m()}function b(){f("onfinish"),e.removeListener("close",p),m()}function m(){f("unpipe"),r.unpipe(e)}return r.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",l),e.once("close",p),e.once("finish",b),e.emit("pipe",r),i.flowing||(f("pipe resume"),r.resume()),e},A.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;o0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,f("on readable",i.length,i.reading),i.length?P(this):i.reading||n.nextTick(B,this))),r},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(e,t){var r=a.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(T,this),r},A.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(T,this),t},A.prototype.resume=function(){var e=this._readableState;return e.flowing||(f("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(C,e,t))}(this,e)),e.paused=!1,this},A.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(f("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(f("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(e,t,r){r(new b("_write()"))},A.prototype._writev=null,A.prototype.end=function(e,t,r){var i=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||function(e,t,r){t.ending=!0,j(e,t),r&&(t.finished?n.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,i,r),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),A.prototype.destroy=h.destroy,A.prototype._undestroy=h.undestroy,A.prototype._destroy=function(e,t){t(e)}}).call(this,r(6),r(5))},function(e,t,r){"use strict";e.exports=c;var n=r(58).codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r(59);function f(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length>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=t;n.base=r(100),n.short=r(584),n.mont=r(585),n.edwards=r(586)},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="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:r(595).Buffer}catch(e){}function u(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void i(!1,"Invalid character in "+e)}function f(e,t,r){var n=u(e,r);return r-1>=t&&(n|=u(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,a=0,s=Math.min(e.length,r),u=t;u=49?f-49+10:f>=17?f-17+10:f,i(f>=0&&a0?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++,this.negative=1),o=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,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)i=f(e,t,n)<=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;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,u=0,f=r;f1&&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},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=d}catch(e){a.prototype.inspect=d}else a.prototype.inspect=d;function d(){return(this.red?""}var l=["","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"],p=[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],b=[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];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?l[6-u.length]+u+r:u+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 f=p[e],c=b[e];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var d=h.modrn(c).toString(e);r=(h=h.idivn(c)).isZero()?d+r:l[f-d.length]+d+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,2)},s&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function m(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,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,t.length-1),l=Math.max(0,f-e.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.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.toArrayLike=function(e,t,r){this._strip();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");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,n),a},a.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i>8&255),r>16&255),6===o?(r>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r=0&&(e[r--]=a>>8&255),r>=0&&(e[r--]=a>>16&255),6===o?(r>=0&&(e[r--]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,r=0;return t>=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],M=8191&k,S=k>>>13,A=0|a[5],x=8191&A,E=A>>>13,O=0|a[6],P=8191&O,R=O>>>13,j=0|a[7],I=8191&j,T=j>>>13,B=0|a[8],C=8191&B,U=B>>>13,N=0|a[9],L=8191&N,q=N>>>13,F=0|s[0],D=8191&F,z=F>>>13,H=0|s[1],K=8191&H,W=H>>>13,V=0|s[2],G=8191&V,Z=V>>>13,J=0|s[3],X=8191&J,Y=J>>>13,$=0|s[4],Q=8191&$,ee=$>>>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],ue=8191&se,fe=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=(f+(n=Math.imul(h,D))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,D)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,D),i=(i=Math.imul(p,z))+Math.imul(b,D)|0,o=Math.imul(b,z);var ve=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,D),i=(i=Math.imul(v,z))+Math.imul(y,D)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,W)|0;var ye=(f+(n=n+Math.imul(h,G)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,G)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,D),i=(i=Math.imul(w,z))+Math.imul(_,D)|0,o=Math.imul(_,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,G)|0,o=o+Math.imul(b,Z)|0;var ge=(f+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,X)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(M,D),i=(i=Math.imul(M,z))+Math.imul(S,D)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(v,G)|0,i=(i=i+Math.imul(v,Z)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,Z)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,Y)|0;var we=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,D),i=(i=Math.imul(x,z))+Math.imul(E,D)|0,o=Math.imul(E,z),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,G)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,Y)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Y)|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=(f+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;f=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,D),i=(i=Math.imul(P,z))+Math.imul(R,D)|0,o=Math.imul(R,z),n=n+Math.imul(x,K)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(M,G)|0,i=(i=i+Math.imul(M,Z)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,Y)|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=(f+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;f=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(I,D),i=(i=Math.imul(I,z))+Math.imul(T,D)|0,o=Math.imul(T,z),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,W)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,W)|0,n=n+Math.imul(x,G)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(E,G)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,Y)|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 Me=(f+(n=n+Math.imul(h,ue)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(d,ue)|0))<<13)|0;f=((o=o+Math.imul(d,fe)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(C,D),i=(i=Math.imul(C,z))+Math.imul(U,D)|0,o=Math.imul(U,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,W)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul(P,G)|0,i=(i=i+Math.imul(P,Z)|0)+Math.imul(R,G)|0,o=o+Math.imul(R,Z)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,Y)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Y)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,fe)|0;var Se=(f+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;f=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,D),i=(i=Math.imul(L,z))+Math.imul(q,D)|0,o=Math.imul(q,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(I,G)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(P,X)|0,i=(i=i+Math.imul(P,Y)|0)+Math.imul(R,X)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(v,fe)|0)+Math.imul(y,ue)|0,o=o+Math.imul(y,fe)|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 Ae=(f+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;f=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,W))+Math.imul(q,K)|0,o=Math.imul(q,W),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,Z)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,Z)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,Y)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(E,re)|0,o=o+Math.imul(E,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,fe)|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 xe=(f+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;f=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,G),i=(i=Math.imul(L,Z))+Math.imul(q,G)|0,o=Math.imul(q,Z),n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(U,X)|0,o=o+Math.imul(U,Y)|0,n=n+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,ae)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,ae)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,fe)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,fe)|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 Ee=(f+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;f=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,Y))+Math.imul(q,X)|0,o=Math.imul(q,Y),n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(I,re)|0,i=(i=i+Math.imul(I,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,ae)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(E,ue)|0,o=o+Math.imul(E,fe)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Oe=(f+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;f=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(q,Q)|0,o=Math.imul(q,ee),n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,fe)|0,n=n+Math.imul(x,he)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(E,he)|0,o=o+Math.imul(E,de)|0;var Pe=(f+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(S,pe)|0))<<13)|0;f=((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(q,re)|0,o=Math.imul(q,ne),n=n+Math.imul(C,oe)|0,i=(i=i+Math.imul(C,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(I,ue)|0,i=(i=i+Math.imul(I,fe)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,fe)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,de)|0;var Re=(f+(n=n+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,be)|0)+Math.imul(E,pe)|0))<<13)|0;f=((o=o+Math.imul(E,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(q,oe)|0,o=Math.imul(q,ae),n=n+Math.imul(C,ue)|0,i=(i=i+Math.imul(C,fe)|0)+Math.imul(U,ue)|0,o=o+Math.imul(U,fe)|0,n=n+Math.imul(I,he)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var je=(f+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(R,pe)|0))<<13)|0;f=((o=o+Math.imul(R,be)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,fe))+Math.imul(q,ue)|0,o=Math.imul(q,fe),n=n+Math.imul(C,he)|0,i=(i=i+Math.imul(C,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Ie=(f+(n=n+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,be)|0)+Math.imul(T,pe)|0))<<13)|0;f=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(q,he)|0,o=Math.imul(q,de);var Te=(f+(n=n+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,be)|0)+Math.imul(U,pe)|0))<<13)|0;f=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863;var Be=(f+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(q,pe)|0))<<13)|0;return f=((o=Math.imul(q,be))+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,u[0]=me,u[1]=ve,u[2]=ye,u[3]=ge,u[4]=we,u[5]=_e,u[6]=ke,u[7]=Me,u[8]=Se,u[9]=Ae,u[10]=xe,u[11]=Ee,u[12]=Oe,u[13]=Pe,u[14]=Re,u[15]=je,u[16]=Ie,u[17]=Te,u[18]=Be,0!==f&&(u[19]=f,r.length++),r};function y(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()}function g(e,t,r){return y(e,t,r)}function w(e,t){this.x=e,this.y=t}Math.imul||(v=m),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?v(this,e,t):r<63?m(this,e,t):r<1024?y(this,e,t):g(this,e,t)},w.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},w.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,r+=o/67108864|0,r+=a>>>26,this.words[n]=67108863&a}return 0!==r&&(this.words[n]=r,this.length++),t?this.ineg():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&1}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,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(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)-(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(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,u=n.length-i.length;if("mod"!==t){(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"!==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.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(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.modrn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(r*n+(0|this.words[o]))%e;return t?-n:n},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*r;this.words[n]=o/e|0,r=o%e}return this._strip(),t?this.ineg():this},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),u=new a(1),f=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++f;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()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},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),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.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);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 E(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 _={k256:null,p224:null,p192:null,p25519:null};function k(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 M(){k.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function S(){k.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){k.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){k.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(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 O(e){E.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)}k.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},k.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},k.prototype.split=function(e,t){e.iushrn(this.n,0,t)},k.prototype.imulK=function(e){return e.imul(this.k)},o(M,k),M.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},M.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(_[e])return _[e];var t;if("k256"===e)t=new M;else if("p224"===e)t=new S;else if("p192"===e)t=new A;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new x}return _[e]=t,t},E.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},E.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")},E.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(h(e,e.umod(this.m)._forceRed(this)),e)},E.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},E.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)},E.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},E.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)},E.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},E.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},E.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},E.prototype.isqr=function(e){return this.imul(e,e.clone())},E.prototype.sqr=function(e){return this.mul(e,e)},E.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),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(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 f=t.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},E.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},E.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new O(e)},o(O,E),O.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},O.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},O.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)},O.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)},O.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e)}).call(this,r(29)(e))},function(e,t,r){"use strict";var n=t;n.bignum=r(9),n.define=r(597).define,n.base=r(600),n.constants=r(601),n.decoders=r(283),n.encoders=r(281)},function(e,t,r){"use strict";var n=t;n.der=r(282),n.pem=r(598)},function(e,t,r){"use strict";var n=r(3),i=r(142).Buffer,o=r(143),a=r(145);function s(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new u,this.tree._init(e.body)}function u(e){o.call(this,"der",e)}function f(e){return e<10?"0"+e:e}e.exports=s,s.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},n(u,o),u.prototype._encodeComposite=function(e,t,r,n){var o=function(e,t,r,n){var i;"seqof"===e?e="seq":"setof"===e&&(e="set");if(a.tagByName.hasOwnProperty(e))i=a.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return n.error("Unknown tag: "+e);i=e}if(i>=31)return n.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=a.tagClassByName[r||"universal"]<<6}(e,t,r,this.reporter);if(n.length<128){var s=i.alloc(2);return s[0]=o,s[1]=n.length,this._createEncoderBuffer([s,n])}for(var u=1,f=n.length;f>=256;f>>=8)u++;var c=i.alloc(2+u);c[0]=o,c[1]=128|u;for(var h=1+u,d=n.length;d>0;h--,d>>=8)c[h]=255&d;return this._createEncoderBuffer([c,n])},u.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var r=i.alloc(2*e.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}for(var a=0,s=0;s=128;u>>=7)a++}for(var f=i.alloc(a),c=f.length-1,h=e.length-1;h>=0;h--){var d=e[h];for(f[c--]=127&d;(d>>=7)>0;)f[c--]=128|127&d}return this._createEncoderBuffer(f)},u.prototype._encodeTime=function(e,t){var r,n=new Date(e);return"gentime"===t?r=[f(n.getUTCFullYear()),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),"Z"].join(""):"utctime"===t?r=[f(n.getUTCFullYear()%100),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(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=i.from(r)}if(i.isBuffer(e)){var n=e.length;0===e.length&&n++;var o=i.alloc(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]);for(var a=1,s=e;s>=256;s>>=8)a++;for(var u=new Array(a),f=u.length-1;f>=0;f--)u[f]=255&e,e>>=8;return 128&u[0]&&u.unshift(0),this._createEncoderBuffer(i.from(u))},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>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="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=u},function(e,t,r){"use strict";var n=Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]},i=function(e,t){for(var r in e)"default"===r||t.hasOwnProperty(r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.secp256k1=t.rlp=t.BN=void 0;var o=r(146);t.secp256k1=o;var a=r(82),s=r(19);t.BN=s;var u=r(149);t.rlp=u,Object.assign(t,a),i(r(645),t),i(r(646),t),i(r(151),t),i(r(673),t),i(r(83),t),i(r(674),t)},function(e,t,r){"use strict";e.exports=r(618)(r(619))},function(e,t,r){"use strict";var n=t;n.version=r(620).version,n.utils=r(32),n.rand=r(297),n.curve=r(298),n.curves=r(147),n.ec=r(633),n.eddsa=r(637)},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(37),i=r(81),o=r(299),a=r(51),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,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 * @license MIT */ -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 M=Object.keys||function(t){var e=[];for(var r in t)u.call(t,r)&&e.push(r);return e}}).call(this,r(8))},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(495),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(100),i=r(497),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(100);t.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},function(t,e,r){"use strict";var n=r(193);t.exports=function(){return String.prototype.trim&&"​"==="​".trim()?String.prototype.trim:n}},function(t,e,r){"use strict";r(508);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(199).version,i=r(29),o=r(275),a=r(62),s=r(144),u=r(479),f=r(480),c=r(17),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.5","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":{"compile":"tsc -b tsconfig.json","dtslint":"dtslint --localTs ../../node_modules/typescript/lib types","postinstall":"echo \\"WARNING: the web3-shh and web3-bzz api will be deprecated in the next version\\""},"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.5","web3-core":"1.3.5","web3-eth":"1.3.5","web3-eth-personal":"1.3.5","web3-net":"1.3.5","web3-shh":"1.3.5","web3-utils":"1.3.5"},"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(102).callbackify,o=r(10),a=r(9).errors,s=r(109),u=r(217),f=r(218),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(219),HttpProvider:r(229),IpcProvider:r(247)},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(103)),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(104),o=r(106);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(211),o=r(106);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,M=k>>>13,S=0|a[5],E=8191&S,x=S>>>13,I=0|a[6],O=8191&I,P=I>>>13,B=0|a[7],C=8191&B,R=B>>>13,T=0|a[8],U=8191&T,N=T>>>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,Z=0|s[3],$=8191&Z,J=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,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(d,$)|0))<<13)|0;f=((o=o+Math.imul(d,J)|0)+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(A,q),i=(i=Math.imul(A,z))+Math.imul(M,q)|0,o=Math.imul(M,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,$)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(b,$)|0,o=o+Math.imul(b,J)|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(M,K)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(y,J)|0)+Math.imul(v,$)|0,o=o+Math.imul(v,J)|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(M,W)|0,o=o+Math.imul(M,Y)|0,n=n+Math.imul(w,$)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,$)|0,o=o+Math.imul(_,J)|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(C,q),i=(i=Math.imul(C,z))+Math.imul(R,q)|0,o=Math.imul(R,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,$)|0,i=(i=i+Math.imul(A,J)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,J)|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(C,K)|0,i=(i=i+Math.imul(C,V)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,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,$)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(x,$)|0,o=o+Math.imul(x,J)|0,n=n+Math.imul(A,Q)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,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 Mt=(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)+(Mt>>>26)|0,Mt&=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(C,W)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(O,$)|0,i=(i=i+Math.imul(O,J)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,J)|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(M,rt)|0,o=o+Math.imul(M,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 St=(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)+(St>>>26)|0,St&=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(C,$)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,J)|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(M,ot)|0,o=o+Math.imul(M,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,$)|0,i=(i=i+Math.imul(U,J)|0)+Math.imul(N,$)|0,o=o+Math.imul(N,J)|0,n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,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(M,ut)|0,o=o+Math.imul(M,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,$),i=(i=Math.imul(L,J))+Math.imul(F,$)|0,o=Math.imul(F,J),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(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(R,rt)|0,o=o+Math.imul(R,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(M,ht)|0,o=o+Math.imul(M,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(C,ot)|0,i=(i=i+Math.imul(C,at)|0)+Math.imul(R,ot)|0,o=o+Math.imul(R,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(M,pt)|0))<<13)|0;f=((o=o+Math.imul(M,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(C,ut)|0,i=(i=i+Math.imul(C,ft)|0)+Math.imul(R,ut)|0,o=o+Math.imul(R,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(C,ht)|0,i=(i=i+Math.imul(C,dt)|0)+Math.imul(R,ht)|0,o=o+Math.imul(R,dt)|0;var Bt=(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)+(Bt>>>26)|0,Bt&=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 Ct=(f+(n=n+Math.imul(C,pt)|0)|0)+((8191&(i=(i=i+Math.imul(C,bt)|0)+Math.imul(R,pt)|0))<<13)|0;f=((o=o+Math.imul(R,bt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(L,ht),i=(i=Math.imul(L,dt))+Math.imul(F,ht)|0,o=Math.imul(F,dt);var Rt=(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)+(Rt>>>26)|0,Rt&=67108863;var Tt=(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)+(Tt>>>26)|0,Tt&=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]=Mt,u[9]=St,u[10]=Et,u[11]=xt,u[12]=It,u[13]=Ot,u[14]=Pt,u[15]=Bt,u[16]=Ct,u[17]=Rt,u[18]=Tt,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 M(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 M(t)},o(M,A),M.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},M.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},M.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)},M.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)},M.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(t)}).call(this,r(20)(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(214);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(215);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)); +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;u--)if(c[u]!==h[u])return!1;for(u=c.length-1;u>=0;u--)if(a=c[u],!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 M(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){M(!0,e,t,r)},l.doesNotThrow=function(e,t,r){M(!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)u.call(e,r)&&t.push(r);return t}}).call(this,r(6))},function(e,t,r){"use strict";var n=r(34).Buffer,i=r(657).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(11)(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";(function(t,n){var i;e.exports=A,A.ReadableState=S;r(38).EventEmitter;var o=function(e,t){return e.listeners(t).length},a=r(306),s=r(2).Buffer,u=t.Uint8Array||function(){};var f,c=r(658);f=c&&c.debuglog?c.debuglog("stream"):function(){};var h,d,l,p=r(659),b=r(307),m=r(308).getHighWaterMark,v=r(60).codes,y=v.ERR_INVALID_ARG_TYPE,g=v.ERR_STREAM_PUSH_AFTER_EOF,w=v.ERR_METHOD_NOT_IMPLEMENTED,_=v.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r(11)(A,a);var k=b.errorOrDestroy,M=["error","close","destroy","pause","resume"];function S(e,t,n){i=i||r(61),e=e||{},"boolean"!=typeof n&&(n=t instanceof i),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=m(this,e,"readableHighWaterMark",n),this.buffer=new p,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.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=r(35).StringDecoder),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function A(e){if(i=i||r(61),!(this instanceof A))return new A(e);var t=this instanceof i;this._readableState=new S(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function x(e,t,r,n,i){f("readableAddChunk",t);var o,a=e._readableState;if(null===t)a.reading=!1,function(e,t){if(f("onEofChunk"),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,t.sync?P(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,R(e)))}(e,a);else if(i||(o=function(e,t){var r;n=t,s.isBuffer(n)||n instanceof u||"string"==typeof t||void 0===t||e.objectMode||(r=new y("chunk",["string","Buffer","Uint8Array"],t));var n;return r}(a,t)),o)k(e,o);else if(a.objectMode||t&&t.length>0)if("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===s.prototype||(t=function(e){return s.from(e)}(t)),n)a.endEmitted?k(e,new _):E(e,a,t,!0);else if(a.ended)k(e,new g);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):j(e,a)):E(e,a,t,!1)}else n||(a.reading=!1,j(e,a));return!a.ended&&(a.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=1073741824?e=1073741824:(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 P(e){var t=e._readableState;f("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(f("emitReadable",t.flowing),t.emittedReadable=!0,n.nextTick(R,e))}function R(e){var t=e._readableState;f("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,U(e)}function j(e,t){t.readingMore||(t.readingMore=!0,n.nextTick(I,e,t))}function I(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function B(e){f("readable nexttick read 0"),e.read(0)}function C(e,t){f("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),U(e),t.flowing&&!t.reading&&e.read(0)}function U(e){var t=e._readableState;for(f("flow",t.flowing);t.flowing&&null!==e.read(););}function N(e,t){return 0===t.length?null:(t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r);var r}function L(e){var t=e._readableState;f("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,n.nextTick(q,t,e))}function q(e,t){if(f("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function F(e,t){for(var r=0,n=e.length;r=t.highWaterMark:t.length>0)||t.ended))return f("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?L(this):P(this),null;if(0===(e=O(e,t))&&t.ended)return 0===t.length&&L(this),null;var n,i=t.needReadable;return f("need readable",i),(0===t.length||t.length-e0?N(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&L(this)),null!==n&&this.emit("data",n),n},A.prototype._read=function(e){k(this,new w("_read()"))},A.prototype.pipe=function(e,t){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,f("pipe count=%d opts=%j",i.pipesCount,t);var a=(!t||!1!==t.end)&&e!==n.stdout&&e!==n.stderr?u:m;function s(t,n){f("onunpipe"),t===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,f("cleanup"),e.removeListener("close",p),e.removeListener("finish",b),e.removeListener("drain",c),e.removeListener("error",l),e.removeListener("unpipe",s),r.removeListener("end",u),r.removeListener("end",m),r.removeListener("data",d),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||c())}function u(){f("onend"),e.end()}i.endEmitted?n.nextTick(a):r.once("end",a),e.on("unpipe",s);var c=function(e){return function(){var t=e._readableState;f("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,U(e))}}(r);e.on("drain",c);var h=!1;function d(t){f("ondata");var n=e.write(t);f("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==F(i.pipes,e))&&!h&&(f("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function l(t){f("onerror",t),m(),e.removeListener("error",l),0===o(e,"error")&&k(e,t)}function p(){e.removeListener("finish",b),m()}function b(){f("onfinish"),e.removeListener("close",p),m()}function m(){f("unpipe"),r.unpipe(e)}return r.on("data",d),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",l),e.once("close",p),e.once("finish",b),e.emit("pipe",r),i.flowing||(f("pipe resume"),r.resume()),e},A.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;o0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,f("on readable",i.length,i.reading),i.length?P(this):i.reading||n.nextTick(B,this))),r},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(e,t){var r=a.prototype.removeListener.call(this,e,t);return"readable"===e&&n.nextTick(T,this),r},A.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||n.nextTick(T,this),t},A.prototype.resume=function(){var e=this._readableState;return e.flowing||(f("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,n.nextTick(C,e,t))}(this,e)),e.paused=!1,this},A.prototype.pause=function(){return f("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(f("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;for(var i in e.on("end",(function(){if(f("wrapped end"),r.decoder&&!r.ended){var e=r.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(f("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(t.push(i)||(n=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(e,t,r){r(new b("_write()"))},A.prototype._writev=null,A.prototype.end=function(e,t,r){var i=this._writableState;return"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!=e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||function(e,t,r){t.ending=!0,j(e,t),r&&(t.finished?n.nextTick(r):e.once("finish",r));t.ended=!0,e.writable=!1}(this,i,r),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),A.prototype.destroy=h.destroy,A.prototype._undestroy=h.undestroy,A.prototype._destroy=function(e,t){t(e)}}).call(this,r(6),r(5))},function(e,t,r){"use strict";e.exports=c;var n=r(60).codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r(61);function f(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length>>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(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(e){for(var t,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,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(u)+f(u,p,b)+a[y]+r[y]|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 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=u},function(e,t,r){"use strict";var n=r(11),i=r(62),o=r(34).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(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(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(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,u=0|this._fh,y=0|this._gh,g=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,M=0|this._dl,S=0|this._el,A=0|this._fl,x=0|this._gl,E=0|this._hl,O=0;O<32;O+=2)t[O]=e.readInt32BE(4*O),t[O+1]=e.readInt32BE(4*O+4);for(;O<160;O+=2){var P=t[O-30],R=t[O-30+1],j=l(P,R),I=p(R,P),T=b(P=t[O-4],R=t[O-4+1]),B=m(R,P),C=t[O-14],U=t[O-14+1],N=t[O-32],L=t[O-32+1],q=I+U|0,F=j+C+v(q,I)|0;F=(F=F+T+v(q=q+B|0,B)|0)+N+v(q=q+L|0,L)|0,t[O]=F,t[O+1]=q}for(var D=0;D<160;D+=2){F=t[D],q=t[D+1];var z=c(r,n,i),H=c(w,_,k),K=h(r,w),W=h(w,r),V=d(s,S),G=d(S,s),Z=a[D],J=a[D+1],X=f(s,u,y),Y=f(S,A,x),$=E+G|0,Q=g+V+v($,E)|0;Q=(Q=(Q=Q+X+v($=$+Y|0,Y)|0)+Z+v($=$+J|0,J)|0)+F+v($=$+q|0,q)|0;var ee=W+H|0,te=K+z+v(ee,W)|0;g=y,E=x,y=u,x=A,u=s,A=S,s=o+Q+v(S=M+$|0,M)|0,o=i,M=k,i=n,k=_,n=r,_=w,r=Q+te+v(w=$+ee|0,$)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+M|0,this._el=this._el+S|0,this._fl=this._fl+A|0,this._gl=this._gl+x|0,this._hl=this._hl+E|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,M)|0,this._eh=this._eh+s+v(this._el,S)|0,this._fh=this._fh+u+v(this._fl,A)|0,this._gh=this._gh+y+v(this._gl,x)|0,this._hh=this._hh+g+v(this._hl,E)|0},u.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=u},function(e,t,r){"use strict";r(728);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(315).version,i=r(42),o=r(461),a=r(92),s=r(244),u=r(713),f=r(714),c=r(26),h=function(){var e=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 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:u,Bzz:f},i.addProviders(h),e.exports=h},function(e){e.exports=JSON.parse('{"name":"web3","version":"1.3.6-rc.2","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":{"compile":"tsc -b tsconfig.json","dtslint":"dtslint --localTs ../../node_modules/typescript/lib types","postinstall":"echo \\"WARNING: the web3-shh and web3-bzz api will be deprecated in the next version\\""},"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.6-rc.2","web3-core":"1.3.6-rc.2","web3-eth":"1.3.6-rc.2","web3-eth-personal":"1.3.6-rc.2","web3-net":"1.3.6-rc.2","web3-shh":"1.3.6-rc.2","web3-utils":"1.3.6-rc.2"},"devDependencies":{"@types/node":"^12.12.6","dtslint":"^3.4.1","typescript":"^3.9.5","web3-core-helpers":"1.3.6-rc.2"}}')},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(153).callbackify,o=r(14),a=r(12).errors,s=r(208),u=r(406),f=r(407),c=function e(t,r){this.provider=null,this.providers=e.providers,this.setProvider(t,r),this.subscriptions=new Map};c.givenProvider=f,c.providers={WebsocketProvider:r(408),HttpProvider:r(418),IpcProvider:r(434)},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+'"');if(this.provider&&this.provider.connected&&this.clearSubscriptions(),this.provider=e||null,this.provider&&this.provider.on){"function"==typeof e.request?this.provider.on("message",(function(e){if(e&&"eth_subscription"===e.type&&e.data){var t=e.data;t.subscription&&r.subscriptions.has(t.subscription)&&r.subscriptions.get(t.subscription).callback(null,t.result)}})):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)}))}));var i=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)};this.provider.on("close",i),this.provider.on("disconnect",i)}},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),u=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,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(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:u}},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";"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";var n=r(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var r=o(t);if(r&&r.has(e))return r.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var u=a?Object.getOwnPropertyDescriptor(e,s):null;u&&(u.get||u.set)?Object.defineProperty(i,s,u):i[s]=e[s]}i.default=e,r&&r.set(e,i);return i}(r(154));function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}var a=(0,i.mixin)(i);a._=a;var s=a;t.default=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return null===e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return!(!e||1!==e.nodeType)}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(16)).default)("Date");t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(16)).default)("RegExp");t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(16)).default)("Error");t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(16)).default)("Object");t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return!(0,o.default)(e)&&(0,i._isFinite)(e)&&!isNaN(parseFloat(e))};var i=r(10),o=n(r(158))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(163)),o=n(r(106)),a=(0,i.default)(o.default);t.default=a},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(null==e)return!0;var t=(0,i.default)(e);return"number"==typeof t&&((0,o.default)(e)||(0,a.default)(e)||(0,s.default)(e))?0===t:0===(0,i.default)((0,u.default)(e))};var i=n(r(28)),o=n(r(44)),a=n(r(103)),s=n(r(105)),u=n(r(15))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return b(e,t)};var i=n(r(1)),o=n(r(24)),a=r(10),s=n(r(106)),u=n(r(161)),f=n(r(27)),c=r(63),h=n(r(104)),d=n(r(15)),l=n(r(39)),p=n(r(330));function b(e,t,r,n){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var m=(0,i.default)(e);return("function"===m||"object"===m||"object"==(0,i.default)(t))&&function e(t,r,n,m){t instanceof o.default&&(t=t._wrapped);r instanceof o.default&&(r=r._wrapped);var v=a.toString.call(t);if(v!==a.toString.call(r))return!1;if(c.hasStringTagBug&&"[object Object]"==v&&(0,h.default)(t)){if(!(0,h.default)(r))return!1;v="[object DataView]"}switch(v){case"[object RegExp]":case"[object String]":return""+t==""+r;case"[object Number]":return+t!=+t?+r!=+r:0==+t?1/+t==1/r:+t==+r;case"[object Date]":case"[object Boolean]":return+t==+r;case"[object Symbol]":return a.SymbolProto.valueOf.call(t)===a.SymbolProto.valueOf.call(r);case"[object ArrayBuffer]":case"[object DataView]":return e((0,p.default)(t),(0,p.default)(r),n,m)}var y="[object Array]"===v;if(!y&&(0,u.default)(t)){if((0,s.default)(t)!==(0,s.default)(r))return!1;if(t.buffer===r.buffer&&t.byteOffset===r.byteOffset)return!0;y=!0}if(!y){if("object"!=(0,i.default)(t)||"object"!=(0,i.default)(r))return!1;var g=t.constructor,w=r.constructor;if(g!==w&&!((0,f.default)(g)&&g instanceof g&&(0,f.default)(w)&&w instanceof w)&&"constructor"in t&&"constructor"in r)return!1}m=m||[];var _=(n=n||[]).length;for(;_--;)if(n[_]===t)return m[_]===r;if(n.push(t),m.push(r),y){if((_=t.length)!==r.length)return!1;for(;_--;)if(!b(t[_],r[_],n,m))return!1}else{var k,M=(0,d.default)(t);if(_=M.length,(0,d.default)(r).length!==_)return!1;for(;_--;)if(k=M[_],!(0,l.default)(r,k)||!b(t[k],r[k],n,m))return!1}return n.pop(),m.pop(),!0}(e,t,r,n)}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,(0,i.default)(e))};var i=n(r(106))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(16)),o=r(63),a=r(107),s=o.isIE11?(0,a.ie11fingerprint)(a.mapMethods):(0,i.default)("Map");t.default=s},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(16)),o=r(63),a=r(107),s=o.isIE11?(0,a.ie11fingerprint)(a.weakMapMethods):(0,i.default)("WeakMap");t.default=s},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(16)),o=r(63),a=r(107),s=o.isIE11?(0,a.ie11fingerprint)(a.setMethods):(0,i.default)("Set");t.default=s},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(16)).default)("WeakSet");t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){for(var t=(0,i.default)(e),r=t.length,n=Array(r),o=0;ot?(n&&(clearTimeout(n),n=null),u=c,s=e.apply(o,a),n||(o=a=null)):n||!1===r.trailing||(n=setTimeout(f,h)),s};return c.cancel=function(){clearTimeout(n),u=0,n=o=a=null},c};var i=n(r(113))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){var n,a,s,u,f,c=function i(){var c=(0,o.default)()-a;t>c?n=setTimeout(i,t-c):(n=null,r||(u=e.apply(f,s)),n||(s=f=null))},h=(0,i.default)((function(i){return f=this,s=i,a=(0,o.default)(),n||(n=setTimeout(c,t),r&&(u=e.apply(f,s))),u}));return h.cancel=function(){clearTimeout(n),n=s=f=null},h};var i=n(r(23)),o=n(r(113))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(t,e)};var i=n(r(85))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=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}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(85)),o=n(r(185)),a=(0,i.default)(o.default,2);t.default=a},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(188)),o=(0,n(r(191)).default)(-1,i.default);t.default=o},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e,(0,o.default)(t))};var i=n(r(192)),o=n(r(84))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(193)).default)(1);t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=(0,n(r(193)).default)(-1);t.default=i},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){return(0,i.default)(e,(0,o.default)((0,a.default)(t)),r)};var i=n(r(67)),o=n(r(114)),a=n(r(22))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){t=(0,i.default)(t,r);for(var n=!(0,o.default)(e)&&(0,a.default)(e),s=(n||e).length,u=0;un||void 0===r)return 1;if(r1&&(r=t[1])):(t=(0,s.default)((0,u.default)(t,!1,!1),String),n=function(e,r){return!(0,f.default)(t,r)}),(0,c.default)(e,n,r)}));t.default=h},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){return null==e||e.length<1?null==t||r?void 0:[]:null==t||r?e[0]:(0,i.default)(e,e.length-t)};var i=n(r(197))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){return null==e||e.length<1?null==t||r?void 0:[]:null==t||r?e[e.length-1]:(0,i.default)(e,Math.max(0,e.length-t))};var i=n(r(198))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e,Boolean)};var i=n(r(67))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e,t,!1)};var i=n(r(53))},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(23)),o=n(r(199)),a=(0,i.default)((function(e,t){return(0,o.default)(e,t)}));t.default=a},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(23)),o=n(r(200)),a=n(r(53)),s=(0,i.default)((function(e){return(0,o.default)((0,a.default)(e,!0,!0))}));t.default=s},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){for(var t=[],r=arguments.length,n=0,a=(0,i.default)(e);n2)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.length=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function f(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=u(e,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==t&&(i=u(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,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(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,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,t.length-1),l=Math.max(0,f-e.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.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(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-u.length]+u+r:u+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 f=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[f-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,u="le"===t,f=new e(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,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],M=8191&k,S=k>>>13,A=0|a[5],x=8191&A,E=A>>>13,O=0|a[6],P=8191&O,R=O>>>13,j=0|a[7],I=8191&j,T=j>>>13,B=0|a[8],C=8191&B,U=B>>>13,N=0|a[9],L=8191&N,q=N>>>13,F=0|s[0],D=8191&F,z=F>>>13,H=0|s[1],K=8191&H,W=H>>>13,V=0|s[2],G=8191&V,Z=V>>>13,J=0|s[3],X=8191&J,Y=J>>>13,$=0|s[4],Q=8191&$,ee=$>>>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],ue=8191&se,fe=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=(f+(n=Math.imul(h,D))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,D)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,D),i=(i=Math.imul(p,z))+Math.imul(b,D)|0,o=Math.imul(b,z);var ve=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,D),i=(i=Math.imul(v,z))+Math.imul(y,D)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,W)|0;var ye=(f+(n=n+Math.imul(h,G)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,G)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,D),i=(i=Math.imul(w,z))+Math.imul(_,D)|0,o=Math.imul(_,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,G)|0,o=o+Math.imul(b,Z)|0;var ge=(f+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,X)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(M,D),i=(i=Math.imul(M,z))+Math.imul(S,D)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(v,G)|0,i=(i=i+Math.imul(v,Z)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,Z)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,Y)|0;var we=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,D),i=(i=Math.imul(x,z))+Math.imul(E,D)|0,o=Math.imul(E,z),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,G)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,Y)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Y)|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=(f+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;f=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,D),i=(i=Math.imul(P,z))+Math.imul(R,D)|0,o=Math.imul(R,z),n=n+Math.imul(x,K)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(M,G)|0,i=(i=i+Math.imul(M,Z)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,Y)|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=(f+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;f=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(I,D),i=(i=Math.imul(I,z))+Math.imul(T,D)|0,o=Math.imul(T,z),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,W)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,W)|0,n=n+Math.imul(x,G)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(E,G)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,Y)|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 Me=(f+(n=n+Math.imul(h,ue)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(d,ue)|0))<<13)|0;f=((o=o+Math.imul(d,fe)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(C,D),i=(i=Math.imul(C,z))+Math.imul(U,D)|0,o=Math.imul(U,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,W)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul(P,G)|0,i=(i=i+Math.imul(P,Z)|0)+Math.imul(R,G)|0,o=o+Math.imul(R,Z)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,Y)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Y)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,fe)|0;var Se=(f+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;f=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,D),i=(i=Math.imul(L,z))+Math.imul(q,D)|0,o=Math.imul(q,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(I,G)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(P,X)|0,i=(i=i+Math.imul(P,Y)|0)+Math.imul(R,X)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(v,fe)|0)+Math.imul(y,ue)|0,o=o+Math.imul(y,fe)|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 Ae=(f+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;f=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,W))+Math.imul(q,K)|0,o=Math.imul(q,W),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,Z)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,Z)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,Y)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(E,re)|0,o=o+Math.imul(E,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,fe)|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 xe=(f+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;f=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,G),i=(i=Math.imul(L,Z))+Math.imul(q,G)|0,o=Math.imul(q,Z),n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(U,X)|0,o=o+Math.imul(U,Y)|0,n=n+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,ae)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,ae)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,fe)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,fe)|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 Ee=(f+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;f=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,Y))+Math.imul(q,X)|0,o=Math.imul(q,Y),n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(I,re)|0,i=(i=i+Math.imul(I,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,ae)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(E,ue)|0,o=o+Math.imul(E,fe)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Oe=(f+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;f=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(q,Q)|0,o=Math.imul(q,ee),n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,fe)|0,n=n+Math.imul(x,he)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(E,he)|0,o=o+Math.imul(E,de)|0;var Pe=(f+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(S,pe)|0))<<13)|0;f=((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(q,re)|0,o=Math.imul(q,ne),n=n+Math.imul(C,oe)|0,i=(i=i+Math.imul(C,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(I,ue)|0,i=(i=i+Math.imul(I,fe)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,fe)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,de)|0;var Re=(f+(n=n+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,be)|0)+Math.imul(E,pe)|0))<<13)|0;f=((o=o+Math.imul(E,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(q,oe)|0,o=Math.imul(q,ae),n=n+Math.imul(C,ue)|0,i=(i=i+Math.imul(C,fe)|0)+Math.imul(U,ue)|0,o=o+Math.imul(U,fe)|0,n=n+Math.imul(I,he)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var je=(f+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(R,pe)|0))<<13)|0;f=((o=o+Math.imul(R,be)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,fe))+Math.imul(q,ue)|0,o=Math.imul(q,fe),n=n+Math.imul(C,he)|0,i=(i=i+Math.imul(C,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Ie=(f+(n=n+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,be)|0)+Math.imul(T,pe)|0))<<13)|0;f=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(q,he)|0,o=Math.imul(q,de);var Te=(f+(n=n+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,be)|0)+Math.imul(U,pe)|0))<<13)|0;f=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863;var Be=(f+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(q,pe)|0))<<13)|0;return f=((o=Math.imul(q,be))+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,u[0]=me,u[1]=ve,u[2]=ye,u[3]=ge,u[4]=we,u[5]=_e,u[6]=ke,u[7]=Me,u[8]=Se,u[9]=Ae,u[10]=xe,u[11]=Ee,u[12]=Oe,u[13]=Pe,u[14]=Re,u[15]=je,u[16]=Ie,u[17]=Te,u[18]=Be,0!==f&&(u[19]=f,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,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(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)-(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(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,u=n.length-i.length;if("mod"!==t){(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"!==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),u=new a(1),f=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++f;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()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},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),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.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);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 M(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 M(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){M.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},M.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},M.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")},M.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},M.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},M.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)},M.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},M.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)},M.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},M.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},M.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},M.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},M.prototype.isqr=function(e){return this.imul(e,e.clone())},M.prototype.sqr=function(e){return this.mul(e,e)},M.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),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(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 f=t.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},M.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},M.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new S(e)},o(S,M),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(29)(e))},function(e,t,r){"use strict";t.byteLength=function(e){var t=f(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,n=f(e),a=n[0],s=n[1],u=new o(function(e,t,r){return 3*(t+r)/4-r}(0,a,s)),c=0,h=s>0?a-4:a;for(r=0;r>16&255,u[c++]=t>>8&255,u[c++]=255&t;2===s&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,u[c++]=255&t);1===s&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t);return u},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,u=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"; +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */t.read=function(e,t,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=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-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)},t.write=function(e,t,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=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*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=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=(t*u-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,f-=8);e[r+l-p]|=128*b}},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 u(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 f(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=u(e,r,r+6),this.words[n]|=i<>>26-o&4194303,(o+=24)>=26&&(o-=26,n++);r+6!==t&&(i=u(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,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(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,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,t.length-1),l=Math.max(0,f-e.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.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(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-u.length]+u+r:u+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 f=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[f-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,u="le"===t,f=new e(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,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],M=8191&k,S=k>>>13,A=0|a[5],x=8191&A,E=A>>>13,O=0|a[6],P=8191&O,R=O>>>13,j=0|a[7],I=8191&j,T=j>>>13,B=0|a[8],C=8191&B,U=B>>>13,N=0|a[9],L=8191&N,q=N>>>13,F=0|s[0],D=8191&F,z=F>>>13,H=0|s[1],K=8191&H,W=H>>>13,V=0|s[2],G=8191&V,Z=V>>>13,J=0|s[3],X=8191&J,Y=J>>>13,$=0|s[4],Q=8191&$,ee=$>>>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],ue=8191&se,fe=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=(f+(n=Math.imul(h,D))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,D)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,D),i=(i=Math.imul(p,z))+Math.imul(b,D)|0,o=Math.imul(b,z);var ve=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,D),i=(i=Math.imul(v,z))+Math.imul(y,D)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,W)|0;var ye=(f+(n=n+Math.imul(h,G)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,G)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,D),i=(i=Math.imul(w,z))+Math.imul(_,D)|0,o=Math.imul(_,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,G)|0,o=o+Math.imul(b,Z)|0;var ge=(f+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,X)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(M,D),i=(i=Math.imul(M,z))+Math.imul(S,D)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(v,G)|0,i=(i=i+Math.imul(v,Z)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,Z)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,Y)|0;var we=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,D),i=(i=Math.imul(x,z))+Math.imul(E,D)|0,o=Math.imul(E,z),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,G)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,Y)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Y)|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=(f+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;f=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,D),i=(i=Math.imul(P,z))+Math.imul(R,D)|0,o=Math.imul(R,z),n=n+Math.imul(x,K)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(M,G)|0,i=(i=i+Math.imul(M,Z)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,Y)|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=(f+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;f=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(I,D),i=(i=Math.imul(I,z))+Math.imul(T,D)|0,o=Math.imul(T,z),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,W)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,W)|0,n=n+Math.imul(x,G)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(E,G)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,Y)|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 Me=(f+(n=n+Math.imul(h,ue)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(d,ue)|0))<<13)|0;f=((o=o+Math.imul(d,fe)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(C,D),i=(i=Math.imul(C,z))+Math.imul(U,D)|0,o=Math.imul(U,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,W)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul(P,G)|0,i=(i=i+Math.imul(P,Z)|0)+Math.imul(R,G)|0,o=o+Math.imul(R,Z)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,Y)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Y)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,fe)|0;var Se=(f+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;f=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,D),i=(i=Math.imul(L,z))+Math.imul(q,D)|0,o=Math.imul(q,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(I,G)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(P,X)|0,i=(i=i+Math.imul(P,Y)|0)+Math.imul(R,X)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(v,fe)|0)+Math.imul(y,ue)|0,o=o+Math.imul(y,fe)|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 Ae=(f+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;f=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,W))+Math.imul(q,K)|0,o=Math.imul(q,W),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,Z)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,Z)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,Y)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(E,re)|0,o=o+Math.imul(E,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,fe)|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 xe=(f+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;f=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,G),i=(i=Math.imul(L,Z))+Math.imul(q,G)|0,o=Math.imul(q,Z),n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(U,X)|0,o=o+Math.imul(U,Y)|0,n=n+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,ae)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,ae)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,fe)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,fe)|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 Ee=(f+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;f=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,Y))+Math.imul(q,X)|0,o=Math.imul(q,Y),n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(I,re)|0,i=(i=i+Math.imul(I,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,ae)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(E,ue)|0,o=o+Math.imul(E,fe)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Oe=(f+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;f=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(q,Q)|0,o=Math.imul(q,ee),n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,fe)|0,n=n+Math.imul(x,he)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(E,he)|0,o=o+Math.imul(E,de)|0;var Pe=(f+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(S,pe)|0))<<13)|0;f=((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(q,re)|0,o=Math.imul(q,ne),n=n+Math.imul(C,oe)|0,i=(i=i+Math.imul(C,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(I,ue)|0,i=(i=i+Math.imul(I,fe)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,fe)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,de)|0;var Re=(f+(n=n+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,be)|0)+Math.imul(E,pe)|0))<<13)|0;f=((o=o+Math.imul(E,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(q,oe)|0,o=Math.imul(q,ae),n=n+Math.imul(C,ue)|0,i=(i=i+Math.imul(C,fe)|0)+Math.imul(U,ue)|0,o=o+Math.imul(U,fe)|0,n=n+Math.imul(I,he)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var je=(f+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(R,pe)|0))<<13)|0;f=((o=o+Math.imul(R,be)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,fe))+Math.imul(q,ue)|0,o=Math.imul(q,fe),n=n+Math.imul(C,he)|0,i=(i=i+Math.imul(C,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Ie=(f+(n=n+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,be)|0)+Math.imul(T,pe)|0))<<13)|0;f=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(q,he)|0,o=Math.imul(q,de);var Te=(f+(n=n+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,be)|0)+Math.imul(U,pe)|0))<<13)|0;f=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863;var Be=(f+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(q,pe)|0))<<13)|0;return f=((o=Math.imul(q,be))+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,u[0]=me,u[1]=ve,u[2]=ye,u[3]=ge,u[4]=we,u[5]=_e,u[6]=ke,u[7]=Me,u[8]=Se,u[9]=Ae,u[10]=xe,u[11]=Ee,u[12]=Oe,u[13]=Pe,u[14]=Re,u[15]=je,u[16]=Ie,u[17]=Te,u[18]=Be,0!==f&&(u[19]=f,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,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(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)-(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(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,u=n.length-i.length;if("mod"!==t){(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"!==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),u=new a(1),f=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++f;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()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},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),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.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);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 M(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 M(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){M.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},M.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},M.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")},M.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},M.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},M.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)},M.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},M.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)},M.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},M.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},M.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},M.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},M.prototype.isqr=function(e){return this.imul(e,e.clone())},M.prototype.sqr=function(e){return this.mul(e,e)},M.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),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(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 f=t.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},M.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},M.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new S(e)},o(S,M),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(29)(e))},function(e,t,r){"use strict";var n=r(399);e.exports=function(e){return"string"!=typeof e?e:n(e)?e.slice(2):e}},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"; +/*! 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 u(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 f(){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|f())>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&e)){if((i=(15&e)<<12|f()<<6|f())>=2048)return a(i),i;throw Error("Invalid continuation byte")}if(240==(248&e)&&(i=(7&e)<<18|f()<<12|f()<<6|f())>=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(403);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,u=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 u(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 f(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(!f(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(!f(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(!u(t))throw new Error("Invalid topic");return a(e,t)},t.isTopic=u,t.isAddress=f},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(404);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){var t=arguments;return void 0!==e.slice||(e.slice=function(){var r=Array.prototype.slice.call(t);return o(new Uint8Array(Array.prototype.slice.apply(e,r)))}),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)); /** * [js-sha3]{@link https://github.com/emn178/js-sha3} * @@ -27,12 +30,12 @@ function o(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r * @copyright Chen, Yi-Cyuan 2015-2018 * @license MIT */ -!function(){var s="input is invalid type",u="object"===("undefined"==typeof window?"undefined":(0,a.default)(window)),f=u?window:{};f.JS_SHA3_NO_WINDOW&&(u=!1);var c=!u&&"object"===("undefined"==typeof self?"undefined":(0,a.default)(self));!f.JS_SHA3_NO_NODE_JS&&"object"===(void 0===t?"undefined":(0,a.default)(t))&&t.versions&&t.versions.node?f=n:c&&(f=self);var h=!f.JS_SHA3_NO_COMMON_JS&&"object"===(0,a.default)(i)&&i.exports,d=r(72),l=!f.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,p="0123456789abcdef".split(""),b=[4,1024,262144,67108864],m=[0,8,16,24],y=[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],v=[224,256,384,512],g=[128,256],w=["hex","buffer","arrayBuffer","array","digest"],_={128:168,256:136};!f.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!l||!f.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"===(0,a.default)(t)&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var k=function(t,e,r){return function(n){return new j(t,e,t).update(n)[r]()}},A=function(t,e,r){return function(n,i){return new j(t,e,i).update(n)[r]()}},M=function(t,e,r){return function(e,n,i,o){return O["cshake"+t].update(e,n,i,o)[r]()}},S=function(t,e,r){return function(e,n,i,o){return O["kmac"+t].update(e,n,i,o)[r]()}},E=function(t,e,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(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,M,S,E,x,I,O,P,B,C,R,T,U,N,j,L,F,D,q,z,H,K,V,G,W,Y,Z,$,J,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,Z=t[22]<<10|t[23]>>>22,$=t[23]<<10|t[22]>>>22,B=t[33]<<13|t[32]>>>19,C=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,J=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,R=t[45]<<29|t[44]>>>3,T=t[44]<<29|t[45]>>>3,S=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,M=t[49]<<14|t[48]>>>18,t[0]=p^~m&g,t[1]=b^~v&w,t[10]=S^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&Z,t[31]=G^~Y&$,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=m^~g&_,t[3]=v^~w&k,t[12]=x^~O&B,t[13]=I^~P&C,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~Z&J,t[33]=Y^~$&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&M,t[14]=O^~B&R,t[15]=P^~C&T,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=Z^~J&Q,t[35]=$^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&p,t[7]=k^~M&b,t[16]=B^~R&S,t[17]=C^~T&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=J^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~p&m,t[9]=M^~b&v,t[18]=R^~S&x,t[19]=T^~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(B=0;B32||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(109),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(73),i=r(220),o=r(9).errors,a=r(225).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(40);if(u.URL){var f=u.URL;s=function(t){return new f(t)}}else s=r(40).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(223),e.encode=e.stringify=r(224)},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(230).XMLHttpRequest,o=r(74),a=r(119),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(231));var n=r(77);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;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(e,t,r){N.call(this,e,t,r)}N.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,u=this.byteCount,f=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)<=u){for(this.start=n-u,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},N.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:(u=65536+((1023&u)<<10|1023&e.charCodeAt(++o)),n+=4)}return n+=this.encode(8*n),this.update(e),n},N.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&&(q(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},N.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 u=new Uint32Array(e);a>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%r==0&&q(n)}return o&&(e=s<<2,t=n[a],u[e]=255&t,o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u},L.prototype=new N,L.prototype.finalize=function(){return this.encode(this.outputBits,!0),N.prototype.finalize.call(this)};var q=function(e){var t,r,n,i,o,a,s,u,f,c,h,d,l,p,b,m,y,g,w,_,k,M,S,A,x,E,O,P,R,j,I,T,B,C,U,N,L,q,F,D,z,H,K,W,V,G,Z,J,X,Y,$,Q,ee,te,re,ne,ie,oe,ae,se,ue,fe,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],f=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^(u<<1|f>>>31),r=o^(f<<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^(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=u^(d<<1|l>>>31),r=f^(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],G=e[11]<<4|e[10]>>>28,Z=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,R=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,C=e[2]<<1|e[3]>>>31,U=e[3]<<1|e[2]>>>31,m=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,X=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,I=e[32]<<13|e[33]>>>19,fe=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,N=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,Y=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,T=e[45]<<29|e[44]>>>3,B=e[44]<<29|e[45]>>>3,A=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,q=e[26]<<25|e[27]>>>7,F=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,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,E=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,D=e[38]<<8|e[39]>>>24,z=e[39]<<8|e[38]>>>24,M=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]=A^~E&P,e[11]=x^~O&R,e[20]=C^~N&q,e[21]=U^~L&F,e[30]=W^~G&J,e[31]=V^~Z&X,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=m^~g&_,e[3]=y^~w&k,e[12]=E^~P&j,e[13]=O^~R&I,e[22]=N^~q&D,e[23]=L^~F&z,e[32]=G^~J&Y,e[33]=Z^~X&$,e[42]=ne^~oe&se,e[43]=ie^~ae&ue,e[4]=g^~_&M,e[5]=w^~k&S,e[14]=P^~j&T,e[15]=R^~I&B,e[24]=q^~D&H,e[25]=F^~z&K,e[34]=J^~Y&Q,e[35]=X^~$&ee,e[44]=oe^~se&fe,e[45]=ae^~ue&ce,e[6]=_^~M&p,e[7]=k^~S&b,e[16]=j^~T&A,e[17]=I^~B&x,e[26]=D^~H&C,e[27]=z^~K&U,e[36]=Y^~Q&W,e[37]=$^~ee&V,e[46]=se^~fe&te,e[47]=ue^~ce&re,e[8]=M^~p&m,e[9]=S^~b&y,e[18]=T^~A&E,e[19]=B^~x&O,e[28]=H^~C&N,e[29]=K^~U&L,e[38]=Q^~W&G,e[39]=ee^~V&Z,e[48]=fe^~te&ne,e[49]=ce^~re&ie,e[0]^=v[n],e[1]^=v[n+1]};if(h)i.exports=P;else{for(j=0;j32||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)},f=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 u(t,e,r).toString("hex").replace("0x","")})).join(""):u(t,n,r).toString("hex").replace("0x","")};e.exports={soliditySha3:function(){var e=Array.prototype.slice.call(arguments),t=i.map(e,f);return a.sha3("0x"+t.join(""))},soliditySha3Raw:function(){return a.sha3Raw("0x"+i.map(Array.prototype.slice.call(arguments),f).join(""))},encodePacked:function(){var e=Array.prototype.slice.call(arguments),t=i.map(e,f);return"0x"+t.join("").toLowerCase()}}},function(e,t,r){"use strict";var n=r(208),i=r(12).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(119),i=r(409),o=r(12).errors,a=r(414).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 u=r(69);if(u.URL){var f=u.URL;s=function(e){return new f(e)}}else s=r(69).parse}else a=btoa.bind(window),s=function(e){return new URL(e)};e.exports={parseURL:s,btoa:a}}).call(this,r(5),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(412),t.encode=t.stringify=r(413)},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 u=1e3;o&&"number"==typeof o.maxKeys&&(u=o.maxKeys);var f=e.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(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,u){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):u?encodeURIComponent(i(u))+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.34"}')},function(e,t,r){"use strict";var n=r(12).errors,i=r(419).XMLHttpRequest,o=r(120),a=r(218),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(420));var n=r(123);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,u=1,f={},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;r0&&(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=M;else if("n"===r)N=I;else if("-"===r)R+=r;else if("0"===r)R+=r,N=20;else{if(-1==="123456789".indexOf(r))return K("Bad value");R+=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&&!T){N=j.pop()||l,o+=t.substring(h,f-1);break}if(!("\\"!==r||T||(T=!0,o+=t.substring(h,f-1),r=t.charAt(f++))))break;if(T){if(T=!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 M:if(!r)continue;if("a"!==r)return K("Invalid false started with f"+r);N=S;continue;case S: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 B:if("."!==r)return K("Leading zero not followed by .");R+=r,N=20;continue;case 20:if(-1!=="0123456789".indexOf(r))R+=r;else if("."===r){if(-1!==R.indexOf("."))return K("Invalid number has two dots");R+=r}else if("e"===r||"E"===r){if(-1!==R.indexOf("e")||-1!==R.indexOf("E"))return K("Invalid number has two exponential");R+=r}else if("+"===r||"-"===r){if("e"!==i&&"E"!==i)return K("Invalid symbol in number");R+=r}else R&&(s(parseFloat(R)),u(),R=""),f--,N=j.pop()||l;continue;default:return K("Unknown state: "+N)}q>=C&&(n=0,void 0!==o&&o.length>65536&&(K("Max buffer length exceeded: textNode"),n=Math.max(n,o.length)),R.length>65536&&(K("Max buffer length exceeded: numberNode"),n=Math.max(n,R.length)),C=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(20)(t))},function(t,e,r){"use strict";var n=r(9).formatters,i=r(32),o=r(17);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 M(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(S([])));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 M(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function S(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:S(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(20)(t))},function(t,e,r){"use strict";var n=r(0)(r(1)),i=r(10),o=r(9).errors,a=r(73),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(253);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(79),o=r(33),a=r(13),s=r(80),u=r(60),f=r(37),c=n(r(122)),h=r(265),d=r(15),l=r(274),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(7)),s=r(13),u=r(15),f=r(121),c=r(120),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)); +a=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,{configurable:!1,enumerable:!0,get: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=7)}([function(e,t,r){r.d(t,"j",(function(){return i})),r.d(t,"d",(function(){return o})),r.d(t,"c",(function(){return a})),r.d(t,"h",(function(){return s})),r.d(t,"b",(function(){return u})),r.d(t,"k",(function(){return f})),r.d(t,"e",(function(){return c})),r.d(t,"g",(function(){return h})),r.d(t,"i",(function(){return d})),r.d(t,"a",(function(){return l})),r.d(t,"f",(function(){return p}));var n=r(1),i=f((function(e,t){var r=t.length;return f((function(n){for(var i=0;i0&&(i=r),r=e[f++]);)switch(D++,"\n"===r?(H++,z=0):z++,U){case d:if("{"===r)U=p;else if("["===r)U=m;else if(!W(r))return K("Non-whitespace before {[.");continue;case g:case p:if(W(r))continue;if(U===g)N.push(w);else{if("}"===r){s({}),u(),U=N.pop()||l;continue}N.push(b)}if('"'!==r)return K('Malformed object key should start with " ');U=y;continue;case w:case b:if(W(r))continue;if(":"===r)U===b?(N.push(b),void 0!==o&&(s({}),a(o),o=void 0),F++):void 0!==o&&(a(o),o=void 0),U=l;else if("}"===r)void 0!==o&&(s(o),u(),o=void 0),u(),F--,U=N.pop()||l;else{if(","!==r)return K("Bad object");U===b&&N.push(b),void 0!==o&&(s(o),u(),o=void 0),U=g}continue;case m:case l:if(W(r))continue;if(U===m){if(s([]),F++,U=l,"]"===r){u(),F--,U=N.pop()||l;continue}N.push(v)}if('"'===r)U=y;else if("{"===r)U=p;else if("["===r)U=m;else if("t"===r)U=_;else if("f"===r)U=S;else if("n"===r)U=O;else if("-"===r)T+=r;else if("0"===r)T+=r,U=20;else{if(-1==="123456789".indexOf(r))return K("Bad value");T+=r,U=20}continue;case v:if(","===r)N.push(v),void 0!==o&&(s(o),u(),o=void 0),U=l;else{if("]"!==r){if(W(r))continue;return K("Bad array")}void 0!==o&&(s(o),u(),o=void 0),u(),F--,U=N.pop()||l}continue;case y:void 0===o&&(o="");var h=f-1;e:for(;;){for(;q>0;)if(L+=r,r=e.charAt(f++),4===q?(o+=String.fromCharCode(parseInt(L,16)),q=0,h=f-1):q++,!r)break e;if('"'===r&&!B){U=N.pop()||l,o+=e.substring(h,f-1);break}if(!("\\"!==r||B||(B=!0,o+=e.substring(h,f-1),r=e.charAt(f++))))break;if(B){if(B=!1,"n"===r?o+="\n":"r"===r?o+="\r":"t"===r?o+="\t":"f"===r?o+="\f":"b"===r?o+="\b":"u"===r?(q=1,L=""):o+=r,r=e.charAt(f++),h=f-1,r)continue;break}c.lastIndex=f;var V=c.exec(e);if(!V){f=e.length+1,o+=e.substring(h,f-1);break}if(f=V.index+1,!(r=e.charAt(V.index))){o+=e.substring(h,f-1);break}}continue;case _:if(!r)continue;if("r"!==r)return K("Invalid true started with t"+r);U=k;continue;case k:if(!r)continue;if("u"!==r)return K("Invalid true started with tr"+r);U=M;continue;case M:if(!r)continue;if("e"!==r)return K("Invalid true started with tru"+r);s(!0),u(),U=N.pop()||l;continue;case S:if(!r)continue;if("a"!==r)return K("Invalid false started with f"+r);U=A;continue;case A:if(!r)continue;if("l"!==r)return K("Invalid false started with fa"+r);U=x;continue;case x:if(!r)continue;if("s"!==r)return K("Invalid false started with fal"+r);U=E;continue;case E:if(!r)continue;if("e"!==r)return K("Invalid false started with fals"+r);s(!1),u(),U=N.pop()||l;continue;case O:if(!r)continue;if("u"!==r)return K("Invalid null started with n"+r);U=P;continue;case P:if(!r)continue;if("l"!==r)return K("Invalid null started with nu"+r);U=R;continue;case R:if(!r)continue;if("l"!==r)return K("Invalid null started with nul"+r);s(null),u(),U=N.pop()||l;continue;case j:if("."!==r)return K("Leading zero not followed by .");T+=r,U=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--,U=N.pop()||l;continue;default:return K("Unknown state: "+U)}D>=I&&(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)),I=65536-n+D)}})),e(n.n).on((function(){if(U===d)return s({}),u(),void(C=!0);U===l&&0===F||K("Unexpected end"),void 0!==o&&(s(o),u(),o=void 0),C=!0}))}},function(e,t,r){r.d(t,"a",(function(){return u})),r.d(t,"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(e,t,r,u,f,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,u,!0),c)t.setRequestHeader(y,c[y]);Object(n.a)(window.location,Object(n.b)(u))||t.setRequestHeader("X-Requested-With","XMLHttpRequest"),t.withCredentials=h,t.send(f)}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(29)(e))},function(e,t,r){"use strict";var n=r(12).formatters,i=r(48),o=r(26);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 u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function f(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 x()}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(e,t,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)}}}(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=f;var h={};function d(){}function l(){}function p(){}var b={};b[o]=function(){return this};var m=Object.getPrototypeOf,v=m&&m(m(A([])));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){u(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,u){var f=c(e[o],e,a);if("throw"!==f.type){var h=f.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,u)}),(function(e){i("throw",e,s,u)})):r.resolve(d).then((function(e){h.value=e,s(h)}),(function(e){return i("throw",e,s,u)}))}u(f.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 M(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 A(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"),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;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),M(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;M(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:A(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(29)(e))},function(e,t,r){"use strict";var n=r(0)(r(1)),i=r(14),o=r(12).errors,a=r(119),s=r(12).formatters;function u(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}}u.prototype=Object.create(a.prototype),u.prototype.constructor=u,u.prototype._extractCallback=function(e){if(i.isFunction(e[e.length-1]))return e.pop()},u.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)},u.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},u.prototype._formatOutput=function(e){var t=this.options.subscription;return t&&t.outputFormatter&&e?t.outputFormatter(e):e},u.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}},u.prototype.unsubscribe=function(e){this.options.requestManager.removeSubscription(this.id,e),this.id=null,this.lastBlock=null,this.removeAllListeners()},u.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},u.prototype.resubscribe=function(){this.options.requestManager.removeSubscription(this.id),this.id=null,this.subscribe(this.callback)},e.exports=u},function(e,t,r){"use strict";var n=r(1);Object.defineProperty(t,"__esModule",{value:!0}),t.computeAddress=w,t.recoverAddress=_,t.accessListify=S,t.serialize=function(e,t){if(null==e.type)return null!=e.accessList&&b.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){(0,f.checkProperties)(e,g);var r=[];y.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&&b.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,n),t.maxLength&&(n=(0,a.stripZeros)(n)).length>t.maxLength&&b.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)&&b.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&&b.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==o&&b.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)}(e,t);switch(e.type){case 1:return A(e,t)}return b.throwError("unsupported transaction type: ".concat(e.type),d.Logger.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})},t.parse=function(e){var t=(0,a.arrayify)(e);if(t[0]>127)return function(e){var t=c.decode(e);9!==t.length&&6!==t.length&&b.throwArgumentError("invalid raw transaction","rawTransaction",e);var r={nonce:v(t[0]).toNumber(),gasPrice:v(t[1]),gasLimit:v(t[2]),to:m(t[3]),value:v(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,u.keccak256)(c.encode(i));try{r.from=_(s,{r:(0,a.hexlify)(r.r),s:(0,a.hexlify)(r.s),recoveryParam:n})}catch(e){console.log(e)}r.hash=(0,u.keccak256)(e)}return r.type=null,r}(t);switch(t[0]){case 1:return function(e){var t=c.decode(e.slice(1));8!==t.length&&11!==t.length&&b.throwArgumentError("invalid component count for transaction type: 1","payload",(0,a.hexlify)(e));var r={type:1,chainId:v(t[0]).toNumber(),nonce:v(t[1]).toNumber(),gasPrice:v(t[2]),gasLimit:v(t[3]),to:m(t[4]),value:v(t[5]),data:t[6],accessList:S(t[7])};if(8===t.length)return r;try{var n=v(t[8]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");r.v=n}catch(e){b.throwArgumentError("invalid v for transaction type: 1","v",t[8])}r.r=(0,a.hexZeroPad)(t[9],32),r.s=(0,a.hexZeroPad)(t[10],32);try{var i=(0,u.keccak256)(A(r));r.from=_(i,{r:r.r,s:r.s,recoveryParam:r.v})}catch(e){console.log(e)}return r.hash=(0,u.keccak256)(e),r}(t)}return b.throwError("unsupported transaction type: ".concat(t[0]),d.Logger.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})};var i=r(90),o=r(40),a=r(13),s=r(125),u=r(49),f=r(50),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=o?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(i,a,s):i[a]=e[a]}i.default=e,r&&r.set(e,i);return i}(r(221)),h=r(451),d=r(17),l=r(460);function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}var b=new d.Logger(l.version);function m(e){return"0x"===e?null:(0,i.getAddress)(e)}function v(e){return"0x"===e?s.Zero:o.BigNumber.from(e)}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"}],g={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0};function w(e){var t=(0,h.computePublicKey)(e);return(0,i.getAddress)((0,a.hexDataSlice)((0,u.keccak256)((0,a.hexDataSlice)(t,1)),12))}function _(e,t){return w((0,h.recoverPublicKey)((0,a.arrayify)(e),t))}function k(e,t){var r=(0,a.stripZeros)(o.BigNumber.from(e).toHexString());return r.length>32&&b.throwArgumentError("invalid length for "+t,"transaction:"+t,e),r}function M(e,t){return{address:(0,i.getAddress)(e),storageKeys:(t||[]).map((function(t,r){return 32!==(0,a.hexDataLength)(t)&&b.throwArgumentError("invalid access list storageKey","accessList[".concat(e,":").concat(r,"]"),t),t.toLowerCase()}))}}function S(e){if(Array.isArray(e))return e.map((function(e,t){return Array.isArray(e)?(e.length>2&&b.throwArgumentError("access list expected to be [ address, storageKeys[] ]","value[".concat(t,"]"),e),M(e[0],e[1])):M(e.address,e.storageKeys)}));var t=Object.keys(e).map((function(t){var r=e[t].reduce((function(e,t){return e[t]=!0,e}),{});return M(t,Object.keys(r).sort())}));return t.sort((function(e,t){return e.address.localeCompare(t.address)})),t}function A(e,t){var r,n=[k(e.chainId||0,"chainId"),k(e.nonce||0,"nonce"),k(e.gasPrice||0,"gasPrice"),k(e.gasLimit||0,"gasLimit"),null!=e.to?(0,i.getAddress)(e.to):"0x",k(e.value||0,"value"),e.data||"0x",(r=e.accessList||[],S(r).map((function(e){return[e.address,e.storageKeys]})))];if(t){var o=(0,a.splitSignature)(t);n.push(k(o.recoveryParam,"recoveryParam")),n.push((0,a.stripZeros)(o.r)),n.push((0,a.stripZeros)(o.s))}return(0,a.hexConcat)(["0x01",c.encode(n)])}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="logger/5.1.0"},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="bytes/5.1.0"},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(7)),a=n(r(8)),s=r(13),u=r(17),f=r(220),c=r(219),h=new u.Logger(f.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,u.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",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)(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(M).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!==u.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),M=_.from("0.5")},function(e,t,r){"use strict";(function(e,t,n){var i=r(0)(r(1)); /** * [js-sha3]{@link https://github.com/emn178/js-sha3} * @@ -41,7 +44,7 @@ a=function(){return function(t){var e={};function r(n){if(e[n])return e[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===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,M,S,E,x,I,O,P,B,C,R,T,U,N,j,L,F,D,q,z,H,K,V,G,W,Y,Z,$,J,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,Z=t[22]<<10|t[23]>>>22,$=t[23]<<10|t[22]>>>22,B=t[33]<<13|t[32]>>>19,C=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,J=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,R=t[45]<<29|t[44]>>>3,T=t[44]<<29|t[45]>>>3,S=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,M=t[49]<<14|t[48]>>>18,t[0]=b^~y&g,t[1]=m^~v&w,t[10]=S^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&Z,t[31]=G^~Y&$,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=y^~g&_,t[3]=v^~w&k,t[12]=x^~O&B,t[13]=I^~P&C,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~Z&J,t[33]=Y^~$&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&M,t[14]=O^~B&R,t[15]=P^~C&T,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=Z^~J&Q,t[35]=$^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&b,t[7]=k^~M&m,t[16]=B^~R&S,t[17]=C^~T&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=J^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~b&y,t[9]=M^~m&v,t[18]=R^~S&x,t[19]=T^~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 M=!0;for(v=0;v=0&&A++,_=_.dblp(A),f<0)break;for(v=0;v0?S=a[v][E-1>>1]:E<0&&(S=a[v][-E-1>>1].neg()),_="affine"===S.type?_.mixedAdd(S):_.add(S))}}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 M=s((function(t,e){var r=e;r.base=m,r.short=_,r.mont=null,r.edwards=null})),S=s((function(t,e){var r,n=e,i=h.assert;function o(t){"short"===t.type?this.curve=new M.short(t):"edwards"===t.type?this.curve=new M.edwards(t):this.curve=new M.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 B=h.assert;function C(t,e){if(t instanceof C)return t;this._importDER(t,e)||(B(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 R=C;function T(){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)}}C.prototype._importDER=function(t,e){t=h.toArray(t,e);var r=new T;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},C.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(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}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 R({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 R(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 R(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 R(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=M,r.curves=S,r.ec=q,r.eddsa=null})).ec;e.EC=z}).call(this,r(8))},function(t,e,r){"use strict";e.sha1=r(268),e.sha224=r(269),e.sha256=r(124),e.sha384=r(270),e.sha512=r(125)},function(t,e,r){"use strict";var n=r(25),i=r(43),o=r(123),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))}}}})];T.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(277);t.exports=n},function(t,e,r){"use strict";var n=r(0),i=n(r(57)),o=n(r(78)),a=r(10),s=r(126),u=r(9).formatters,f=r(17),c=r(278),h=r(299),d=r(300);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(127),o=r(137),a=r(58),s=r(9).formatters,u=r(17),f=r(297),c=r(298);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(7)),a=n(r(18)),s=n(r(19)),u=n(r(16)),f=r(79),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(24).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(7)),a=n(r(18)),s=n(r(19)),u=n(r(16));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(24).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(7)),a=n(r(18)),s=n(r(19)),u=n(r(16));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(24).Coder);e.BooleanCoder=c},function(t,e,r){"use strict";var n=r(16);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(7)),a=n(r(18)),s=n(r(19)),u=n(r(16)),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(24).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(7)),a=n(r(18)),s=n(r(19)),u=n(r(16));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(24).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(7)),a=n(r(18)),s=n(r(19)),u=n(r(16)),f=r(33),c=r(80);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(24).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(7)),a=n(r(135)),s=n(r(18)),u=n(r(19)),f=n(r(16)),c=r(136);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(134).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(80),i=r(13),o=r(82)},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(82);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 M({_isIndexed:!0,hash:null});else if(a[e])f[e]=new M({_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 S("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 S("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,u=this.blockCount,f=0,c=this.s;f>2]|=e[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&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&&(M(r),o=0)}return i&&(e=r[o],i>0&&(u+=a[e>>4&15]+a[15&e]),i>1&&(u+=a[e>>12&15]+a[e>>8&15]),i>2&&(u+=a[e>>20&15]+a[e>>16&15])),u},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 u=new Uint32Array(e);a>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%r==0&&M(n)}return o&&(e=s<<2,t=n[a],o>0&&(u[e]=255&t),o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u};var M=function(e){var t,r,n,i,o,a,s,f,c,h,d,l,p,b,m,v,y,g,w,_,k,M,S,A,x,E,O,P,R,j,I,T,B,C,U,N,L,q,F,D,z,H,K,W,V,G,Z,J,X,Y,$,Q,ee,te,re,ne,ie,oe,ae,se,ue,fe,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],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^(f<<1|c>>>31),r=o^(c<<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^(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=f^(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],G=e[11]<<4|e[10]>>>28,Z=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,R=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,C=e[2]<<1|e[3]>>>31,U=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,X=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,I=e[32]<<13|e[33]>>>19,fe=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,N=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,Y=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,T=e[45]<<29|e[44]>>>3,B=e[44]<<29|e[45]>>>3,A=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,q=e[26]<<25|e[27]>>>7,F=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,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,E=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,D=e[38]<<8|e[39]>>>24,z=e[39]<<8|e[38]>>>24,M=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]=A^~E&P,e[11]=x^~O&R,e[20]=C^~N&q,e[21]=U^~L&F,e[30]=W^~G&J,e[31]=V^~Z&X,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=E^~P&j,e[13]=O^~R&I,e[22]=N^~q&D,e[23]=L^~F&z,e[32]=G^~J&Y,e[33]=Z^~X&$,e[42]=ne^~oe&se,e[43]=ie^~ae&ue,e[4]=g^~_&M,e[5]=w^~k&S,e[14]=P^~j&T,e[15]=R^~I&B,e[24]=q^~D&H,e[25]=F^~z&K,e[34]=J^~Y&Q,e[35]=X^~$&ee,e[44]=oe^~se&fe,e[45]=ae^~ue&ce,e[6]=_^~M&b,e[7]=k^~S&m,e[16]=j^~T&A,e[17]=I^~B&x,e[26]=D^~H&C,e[27]=z^~K&U,e[36]=Y^~Q&W,e[37]=$^~ee&V,e[46]=se^~fe&te,e[47]=ue^~ce&re,e[8]=M^~b&v,e[9]=S^~m&y,e[18]=T^~A&E,e[19]=B^~x&O,e[28]=H^~C&N,e[29]=K^~U&L,e[38]=Q^~W&G,e[39]=ee^~V&Z,e[48]=fe^~te&ne,e[49]=ce^~re&ie,e[0]^=u[n],e[1]^=u[n+1]};if(o)n.exports=b;else for(v=0;v>8,a=255&i;o?r.push(o,a):r.push(a)}return r},r.zero2=n,r.toHex=i,r.encode=function(e,t){return"hex"===t?i(e):e}})),h=s((function(e,t){var r=t;r.assert=u,r.toArray=c.toArray,r.zero2=c.zero2,r.toHex=c.toHex,r.encode=c.encode,r.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)-u:u,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n},r.getJSF=function(e,t){var r=[[],[]];e=e.clone(),t=t.clone();for(var n,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var a,s,u=e.andln(3)+i&3,f=t.andln(3)+o&3;3===u&&(u=-1),3===f&&(f=-1),a=0==(1&u)?0:3!==(n=e.andln(7)+i&7)&&5!==n||2!==f?u:-u,r[0].push(a),s=0==(1&f)?0:3!==(n=t.andln(7)+o&7)&&5!==n||2!==u?f:-f,r[1].push(s),2*i===a+1&&(i=1-i),2*o===s+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return r},r.cachedProperty=function(e,t,r){var n="_"+t;e.prototype[t]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new o.default(e,"hex","le")}})),d=h.getNAF,l=h.getJSF,p=h.assert;function b(e,t){this.type=e,this.p=new o.default(t.p,16),this.red=t.prime?o.default.red(t.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=t.n&&new o.default(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))}var m=b;function v(e,t){this.curve=e,this.type=t,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(e,t){p(e.precomputed);var r=e._getDoubles(),n=d(t,1,this._bitLength),i=(1<=o;u--)a=(a<<1)+n[u];s.push(a)}for(var f=this.jpoint(null,null,null),c=this.jpoint(null,null,null),h=i;h>0;h--){for(o=0;o=0;s--){for(var u=0;s>=0&&0===o[s];s--)u++;if(s>=0&&u++,a=a.dblp(u),s<0)break;var f=o[s];p(0!==f),a="affine"===e.type?f>0?a.mixedAdd(i[f-1>>1]):a.mixedAdd(i[-f-1>>1].neg()):f>0?a.add(i[f-1>>1]):a.add(i[-f-1>>1].neg())}return"affine"===e.type?a.toP():a},b.prototype._wnafMulAdd=function(e,t,r,n,i){var o,a,s,u=this._wnafT1,f=this._wnafT2,c=this._wnafT3,h=0;for(o=0;o=1;o-=2){var b=o-1,m=o;if(1===u[b]&&1===u[m]){var v=[t[b],null,null,t[m]];0===t[b].y.cmp(t[m].y)?(v[1]=t[b].add(t[m]),v[2]=t[b].toJ().mixedAdd(t[m].neg())):0===t[b].y.cmp(t[m].y.redNeg())?(v[1]=t[b].toJ().mixedAdd(t[m]),v[2]=t[b].add(t[m].neg())):(v[1]=t[b].toJ().mixedAdd(t[m]),v[2]=t[b].toJ().mixedAdd(t[m].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=l(r[b],r[m]);for(h=Math.max(g[0].length,h),c[b]=new Array(h),c[m]=new Array(h),a=0;a=0;o--){for(var S=0;o>=0;){var A=!0;for(a=0;a=0&&S++,k=k.dblp(S),o<0)break;for(a=0;a0?s=f[a][x-1>>1]:x<0&&(s=f[a][-x-1>>1].neg()),k="affine"===s.type?k.mixedAdd(s):k.add(s))}}for(o=0;o=Math.ceil((e.bitLength()+1)/t.step)},v.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i=0&&(a=t,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(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),u=i.mul(r.b),f=o.mul(n.b);return{k1:e.sub(a).sub(s),k2:u.add(f).neg()}},w.prototype.pointFromX=function(e,t){(e=new o.default(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 i=n.fromRed().isOdd();return(t&&!i||!t&&i)&&(n=n.redNeg()),this.point(e,n)},w.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)},w.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},k.prototype.isInfinity=function(){return this.inf},k.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)},k.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)},k.prototype.getX=function(){return this.x.fromRed()},k.prototype.getY=function(){return this.y.fromRed()},k.prototype.mul=function(e){return e=new o.default(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)},k.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)},k.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)},k.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))},k.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},k.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},y(M,m.BasePoint),w.prototype.jpoint=function(e,t,r){return new M(this,e,t,r)},M.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)},M.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},M.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),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(e.z).redMul(s);return this.curve.jpoint(d,l,p)},M.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 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)},M.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},M.prototype.inspect=function(){return this.isInfinity()?"":""},M.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var S=s((function(e,t){var r=t;r.base=m,r.short=_,r.mont=null,r.edwards=null})),A=s((function(e,t){var r,n=t,i=h.assert;function o(e){"short"===e.type?this.curve=new S.short(e):"edwards"===e.type?this.curve=new S.edwards(e):this.curve=new S.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function s(e,t){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,get:function(){var r=new o(t);return Object.defineProperty(n,e,{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(e){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 x(e){if(!(this instanceof x))return new x(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=c.toArray(e.entropy,e.entropyEnc||"hex"),r=c.toArray(e.nonce,e.nonceEnc||"hex"),n=c.toArray(e.pers,e.persEnc||"hex");u(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,r,n)}var E=x;x.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},x.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=c.toArray(r,n||"hex"),this._update(r));for(var i=[];i.length"};var j=h.assert;function I(e,t){if(e instanceof I)return e;this._importDER(e,t)||(j(e.r&&e.s,"Signature without r or s"),this.r=new o.default(e.r,16),this.s=new o.default(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var T=I;function B(){this.place=0}function C(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)}}I.prototype._importDER=function(e,t){e=h.toArray(e,t);var r=new B;if(48!==e[r.place++])return!1;var n=C(e,r);if(!1===n)return!1;if(n+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var i=C(e,r);if(!1===i)return!1;var a=e.slice(r.place,i+r.place);if(r.place+=i,2!==e[r.place++])return!1;var s=C(e,r);if(!1===s)return!1;if(e.length!==s+r.place)return!1;var u=e.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},I.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];N(n,t.length),(n=n.concat(t)).push(2),N(n,r.length);var i=n.concat(r),o=[48];return N(o,i.length),o=o.concat(i),h.encode(o,e)};var L=function(){throw new Error("unsupported")},q=h.assert;function F(e){if(!(this instanceof F))return new F(e);"string"==typeof e&&(q(Object.prototype.hasOwnProperty.call(A,e),"Unknown curve "+e),e=A[e]),e instanceof A.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}var D=F;F.prototype.keyPair=function(e){return new R(this,e)},F.prototype.keyFromPrivate=function(e,t){return R.fromPrivate(this,e,t)},F.prototype.keyFromPublic=function(e,t){return R.fromPublic(this,e,t)},F.prototype.genKeyPair=function(e){e||(e={});for(var t=new E({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||L(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new o.default(2));;){var i=new o.default(t.generate(r));if(!(i.cmp(n)>0))return i.iaddn(1),this.keyFromPrivate(i)}},F.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},F.prototype.sign=function(e,t,r,n){"object"===(0,i.default)(r)&&(n=r,r=null),n||(n={}),t=this.keyFromPrivate(t,r),e=this._truncateToN(new o.default(e,16));for(var a=this.n.byteLength(),s=t.getPrivate().toArray("be",a),u=e.toArray("be",a),f=new E({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(t.getPrivate()).iadd(e));if(0!==(m=m.umod(this.n)).cmpn(0)){var v=(l.getY().isOdd()?1:0)|(0!==p.cmp(b)?2:0);return n.canonical&&m.cmp(this.nh)>0&&(m=this.n.sub(m),v^=1),new T({r:b,s:m,recoveryParam:v})}}}}}},F.prototype.verify=function(e,t,r,n){e=this._truncateToN(new o.default(e,16)),r=this.keyFromPublic(r,n);var i=(t=new T(t,"hex")).r,a=t.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(e).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)},F.prototype.recoverPubKey=function(e,t,r,n){q((3&r)===r,"The recovery param is more than two bits"),t=new T(t,n);var i=this.n,a=new o.default(e),s=t.r,u=t.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=t.r.invm(i),d=i.sub(a).mul(h).umod(i),l=u.mul(h).umod(i);return this.g.mulAdd(d,s,l)},F.prototype.getKeyRecoveryParam=function(e,t,r,n){if(null!==(t=new T(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")};var z=s((function(e,t){var r=t;r.version="6.5.4",r.utils=h,r.rand=function(){throw new Error("unsupported")},r.curve=S,r.curves=A,r.ec=D,r.eddsa=null})).ec;t.EC=z}).call(this,r(6))},function(e,t,r){"use strict";t.sha1=r(454),t.sha224=r(455),t.sha256=r(223),t.sha384=r(456),t.sha512=r(224)},function(e,t,r){"use strict";var n=r(36),i=r(73),o=r(222),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),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;te.highestBlock-200&&(t._isSyncing=!1,t.emit("changed",t._isSyncing),n.isFunction(t.callback)&&t.callback(null,t._isSyncing,t))}),500))}}}})];B.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(M),e.exports=M},function(e,t,r){"use strict";var n=r(463);e.exports=n},function(e,t,r){"use strict";var n=r(0),i=n(r(72)),o=n(r(124)),a=r(14),s=r(225),u=r(12).formatters,f=r(26),c=r(464),h=r(487),d=r(488);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?u.inputAddressFormatter(e):e},enumerable:!0})}l.prototype.supportsInterface=function(e,t,r){return this.getResolver(e).then((function(e){return f.isHexStrict(t)||(t=f.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(14),i=r(226),o=r(237),a=r(88),s=r(12).formatters,u=r(26),f=r(485),c=r(486);function h(e){var t=this;this.ens=e,this.contract=e.checkNetwork().then((function(e){var r=new i(f,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 u=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):u.resolve(e)})).catch((function(e){n.isFunction(i)?i(e,null):u.reject(e)})),u.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,f){var c=new a(!0);return u.isHexStrict(t)||(t=u.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(f)?f(e,e):c.resolve(e)})).catch((function(e){n.isFunction(f)?f(e,null):c.reject(e)})),c.eventEmitter},h.prototype.setRecord=function(e,t,r,i,u,f){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(u)})).then((function(e){n.isFunction(f)?f(e,e):c.resolve(e)})).catch((function(e){n.isFunction(f)?f(e,null):c.reject(e)})),c.eventEmitter},h.prototype.setSubnodeRecord=function(e,t,r,i,f,c,h){var d=new a(!0);return u.isHexStrict(t)||(t=u.sha3(t)),this.contract.then((function(n){return n.methods.setSubnodeRecord(o.hash(e),t,s.inputAddressFormatter(r),s.inputAddressFormatter(i),f).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 u=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):u.resolve(e)})).catch((function(e){n.isFunction(i)?i(e,null):u.reject(e)})),u.eventEmitter},e.exports=h},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.AddressCoder=void 0;var i=n(r(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18)),f=r(90),c=r(13);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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,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,f.getAddress)(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}},{key:"decode",value:function(e){return(0,f.getAddress)((0,c.hexZeroPad)(e.readValue().toHexString(),20))}}]),r}(r(33).Coder);t.AddressCoder=d},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.AnonymousCoder=void 0;var i=n(r(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18));function f(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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,s.default)(this,r)}}var c=function(e){(0,a.default)(r,e);var t=f(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(33).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(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18));function f(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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,s.default)(this,r)}}var c=function(e){(0,a.default)(r,e);var t=f(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(33).Coder);t.BooleanCoder=c},function(e,t,r){"use strict";var n=r(18);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=n(e)););return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.FixedBytesCoder=void 0;var i=n(r(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18)),f=r(13);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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,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,f.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,f.hexlify)(e.readBytes(this.size)))}}]),r}(r(33).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(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18));function f(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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,s.default)(this,r)}}var c=function(e){(0,a.default)(r,e);var t=f(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(33).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(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18)),f=r(40),c=r(125);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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,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=f.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(33).Coder);t.NumberCoder=d},function(e,t,r){"use strict";var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.StringCoder=void 0;var i=n(r(7)),o=n(r(8)),a=n(r(234)),s=n(r(20)),u=n(r(21)),f=n(r(18)),c=r(93);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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,u.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,f.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,f.default)(r.prototype),"decode",this).call(this,e))}}]),r}(r(233).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(125),i=r(13),o=r(127)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.version=void 0;t.version="strings/5.1.0"},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(u.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(127);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"),u="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((function(e){return parseInt(e,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(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,u=this._abiCoder.decode(o,t,!0),f=[],c=0,d=0;e.inputs.forEach((function(e,t){if(e.indexed)if(null==s)f[t]=new S({_isIndexed:!0,hash:null});else if(a[t])f[t]=new S({_isIndexed:!0,hash:s[d++]});else try{f[t]=s[d++]}catch(e){f[t]=e}else try{f[t]=u[c++]}catch(e){f[t]=e}if(e.name&&null==f[e.name]){var r=f[t];r instanceof Error?Object.defineProperty(f,e.name,{get:function(){throw A("property ".concat(JSON.stringify(e.name)),r)}}):f[e.name]=r}}));for(var l=function(e){var t=f[e];t instanceof Error&&Object.defineProperty(f,e,{get:function(){throw A("index ".concat(e),t)}})},p=0;p256||t[2]&&t[2]!==String(n))&&m.throwArgumentError("invalid numeric width","type",e);var i=_.mask(r?n-1:n),o=r?i.add(w).mul(y):g;return function(t){var r=u.BigNumber.from(t);return(r.lt(o)||r.gt(i))&&m.throwArgumentError("value out-of-bounds for ".concat(e),"value",t),(0,f.hexZeroPad)(r.toTwos(256).toHexString(),32)}}var a=e.match(/^bytes(\d+)$/);if(a){var h=parseInt(a[1]);return(0===h||h>32||a[1]!==String(h))&&m.throwArgumentError("invalid bytes width","type",e),function(t){return(0,f.arrayify)(t).length!==h&&m.throwArgumentError("invalid length for ".concat(e),"value",t),function(e){var t=(0,f.arrayify)(e),r=t.length%32;return r?(0,f.hexConcat)([t,v.slice(r)]):(0,f.hexlify)(t)}(t)}}switch(e){case"address":return function(e){return(0,f.hexZeroPad)((0,s.getAddress)(e),32)};case"bool":return function(e){return e?k:M};case"bytes":return function(e){return(0,c.keccak256)(e)};case"string":return function(e){return(0,p.id)(e)}}return null}function P(e,t){return"".concat(e,"(").concat(t.map((function(e){var t=e.name;return e.type+" "+t})).join(","),")")}var R=function(){function e(t){(0,o.default)(this,e),(0,h.defineReadOnly)(this,"types",Object.freeze((0,h.deepCopy)(t))),(0,h.defineReadOnly)(this,"_encoderCache",{}),(0,h.defineReadOnly)(this,"_types",{});var r={},n={},i={};Object.keys(t).forEach((function(e){r[e]={},n[e]=[],i[e]={}}));var a=function(e){var i={};t[e].forEach((function(o){i[o.name]&&m.throwArgumentError("duplicate variable name ".concat(JSON.stringify(o.name)," in ").concat(JSON.stringify(e)),"types",t),i[o.name]=!0;var a=o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];a===e&&m.throwArgumentError("circular type reference to ".concat(JSON.stringify(a)),"types",t),O(a)||(n[a]||m.throwArgumentError("unknown type ".concat(JSON.stringify(a)),"types",t),n[a].push(e),r[e][a]=!0)}))};for(var s in t)a(s);var u=Object.keys(n).filter((function(e){return 0===n[e].length}));for(var f in 0===u.length?m.throwArgumentError("missing primary type","types",t):u.length>1&&m.throwArgumentError("ambiguous primary types or unused types: ".concat(u.map((function(e){return JSON.stringify(e)})).join(", ")),"types",t),(0,h.defineReadOnly)(this,"primaryType",u[0]),function e(o,a){a[o]&&m.throwArgumentError("circular type reference to ".concat(JSON.stringify(o)),"types",t),a[o]=!0,Object.keys(r[o]).forEach((function(t){n[t]&&(e(t,a),Object.keys(a).forEach((function(e){i[e][t]=!0})))})),delete a[o]}(this.primaryType,{}),i){var c=Object.keys(i[f]);c.sort(),this._types[f]=P(f,t[f])+c.map((function(e){return P(e,t[e])})).join("")}}return(0,a.default)(e,[{key:"getEncoder",value:function(e){var t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}},{key:"_getEncoder",value:function(e){var t=this,r=O(e);if(r)return r;var n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){var i=n[1],o=this.getEncoder(i),a=parseInt(n[3]);return function(e){a>=0&&e.length!==a&&m.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",e);var r=e.map(o);return t._types[i]&&(r=r.map(c.keccak256)),(0,c.keccak256)((0,f.hexConcat)(r))}}var s=this.types[e];if(s){var u=(0,p.id)(this._types[e]);return function(e){var r=s.map((function(r){var n=r.name,i=r.type,o=t.getEncoder(i)(e[n]);return t._types[i]?(0,c.keccak256)(o):o}));return r.unshift(u),(0,f.hexConcat)(r)}}return m.throwArgumentError("unknown type: ".concat(e),"type",e)}},{key:"encodeType",value:function(e){var t=this._types[e];return t||m.throwArgumentError("unknown type: ".concat(JSON.stringify(e)),"name",e),t}},{key:"encodeData",value:function(e,t){return this.getEncoder(e)(t)}},{key:"hashStruct",value:function(e,t){return(0,c.keccak256)(this.encodeData(e,t))}},{key:"encode",value:function(e){return this.encodeData(this.primaryType,e)}},{key:"hash",value:function(e){return this.hashStruct(this.primaryType,e)}},{key:"_visit",value:function(e,t,r){var n=this;if(O(e))return r(e,t);var i=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(i){var o=i[1],a=parseInt(i[3]);return a>=0&&t.length!==a&&m.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map((function(e){return n._visit(o,e,r)}))}var s=this.types[e];return s?s.reduce((function(e,i){var o=i.name,a=i.type;return e[o]=n._visit(a,t[o],r),e}),{}):m.throwArgumentError("unknown type: ".concat(e),"type",e)}},{key:"visit",value:function(e,t){return this._visit(this.primaryType,e,t)}}],[{key:"from",value:function(t){return new e(t)}},{key:"getPrimaryType",value:function(t){return e.from(t).primaryType}},{key:"hashStruct",value:function(t,r,n){return e.from(r).hashStruct(t,n)}},{key:"hashDomain",value:function(t){var r=[];for(var n in t){var i=S[n];i||m.throwArgumentError("invalid typed-data domain key: ".concat(JSON.stringify(n)),"domain",t),r.push({name:n,type:i})}return r.sort((function(e,t){return A.indexOf(e.name)-A.indexOf(t.name)})),e.hashStruct("EIP712Domain",{EIP712Domain:r},t)}},{key:"encode",value:function(t,r,n){return(0,f.hexConcat)(["0x1901",e.hashDomain(t),e.from(r).hash(n)])}},{key:"hash",value:function(t,r,n){return(0,c.keccak256)(e.encode(t,r,n))}},{key:"resolveNames",value:function(t,r,n,o){return b(this,void 0,void 0,i.default.mark((function a(){var s,u,c;return i.default.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:t=(0,h.shallowCopy)(t),s={},t.verifyingContract&&!(0,f.isHexString)(t.verifyingContract,20)&&(s[t.verifyingContract]="0x"),(u=e.from(r)).visit(n,(function(e,t){return"address"!==e||(0,f.isHexString)(t,20)||(s[t]="0x"),t})),a.t0=i.default.keys(s);case 6:if((a.t1=a.t0()).done){a.next=13;break}return c=a.t1.value,a.next=10,o(c);case 10:s[c]=a.sent,a.next=6;break;case 13:return t.verifyingContract&&s[t.verifyingContract]&&(t.verifyingContract=s[t.verifyingContract]),n=u.visit(n,(function(e,t){return"address"===e&&s[t]?s[t]:t})),a.abrupt("return",{domain:t,value:n});case 16:case"end":return a.stop()}}),a)})))}},{key:"getPayload",value:function(t,r,n){e.hashDomain(t);var i={},o=[];A.forEach((function(e){var r=t[e];null!=r&&(i[e]=E[e](r),o.push({name:e,type:S[e]}))}));var a=e.from(r),s=(0,h.shallowCopy)(r);return s.EIP712Domain?m.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",r):s.EIP712Domain=o,a.encode(n),{types:s,domain:i,primaryType:a.primaryType,message:a.visit(n,(function(e,t){if(e.match(/^bytes(\d*)/))return(0,f.hexlify)((0,f.arrayify)(t));if(e.match(/^u?int/))return u.BigNumber.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&m.throwArgumentError("invalid string","value",t),t}return m.throwArgumentError("unsupported type","type",e)}))}}}]),e}();t.TypedDataEncoder=R},function(e,t,r){"use strict";(function(e,t,n){var i=r(0)(r(1)); /** * [js-sha3]{@link https://github.com/emn178/js-sha3} * @@ -50,5 +53,6 @@ a=function(){return function(t){var e={};function r(n){if(e[n])return e[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===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,M,S,E,x,I,O,P,B,C,R,T,U,N,j,L,F,D,q,z,H,K,V,G,W,Y,Z,$,J,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,Z=t[22]<<10|t[23]>>>22,$=t[23]<<10|t[22]>>>22,B=t[33]<<13|t[32]>>>19,C=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,J=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,R=t[45]<<29|t[44]>>>3,T=t[44]<<29|t[45]>>>3,S=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,M=t[49]<<14|t[48]>>>18,t[0]=b^~y&g,t[1]=m^~v&w,t[10]=S^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&Z,t[31]=G^~Y&$,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=y^~g&_,t[3]=v^~w&k,t[12]=x^~O&B,t[13]=I^~P&C,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~Z&J,t[33]=Y^~$&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&M,t[14]=O^~B&R,t[15]=P^~C&T,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=Z^~J&Q,t[35]=$^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&b,t[7]=k^~M&m,t[16]=B^~R&S,t[17]=C^~T&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=J^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~b&y,t[9]=M^~m&v,t[18]=R^~S&x,t[19]=T^~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(57)),o=n(r(78)),a=r(58),s=r(137),u=r(9).errors,f=r(10),c=r(126).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(301);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(302),i=r(313),o=i.hexStringToBuffer,a=i.profiles,s=r(336).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(45),o=r(306),a=r(307),s=r(138);(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(308);Object.assign(e,u),e.print=r(312)}).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(322);(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(323),i=r(142),o=r(324),a=r(325),s=r(326),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(7)),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(45),o=r(328),a=r(329),s=r(143);(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(330);Object.assign(e,u),e.print=r(331)},function(t,e,r){"use strict";var n=r(47),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(47),i=r(143).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(46)),i=r(47),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(38),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(146),o=r(38),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(147),o=r(38),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(150)},function(t,e,r){"use strict";(function(e,n){var i,o=r(152),a=r(153),s=r(154),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(8),r(12))},function(t,e,r){"use strict";var n=r(356),i=r(89),o=r(90),a=r(371),s=r(66);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(88),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(158),i=r(4).Buffer,o=r(90),a=r(159),s=r(28),u=r(65),f=r(66);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(160),i=r(374),o=r(375);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(161)),o=new n(24),a=new n(11),s=new n(10),u=new n(3),f=new n(7),c=r(160),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(68),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(68),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(384),a=r(22),s=r(93),u=r(91),f=a.assert,c=r(385),h=r(386);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(61),i=r(162),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(61),i=r(93),o=r(22),a=o.assert,s=o.parseBytes,u=r(388),f=r(389);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(69),i=r(169),o=r(170),a=r(5),s=r(92),u=r(48),f=r(171),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(8),r(12))},function(t,e,r){"use strict";var n=r(5),i=r(84),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,M=void 0,S=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++)M=((_=c[k-2])>>>17|_<<15)^(_>>>19|_<<13)^_>>>10,S=((_=c[k-15])>>>7|_<<25)^(_>>>18|_<<14)^_>>>3,c[k]=(M+c[k-7]|0)+(S+c[k-16]|0)|0;for(k=0;k<64;k++)M=(((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,S=((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+M|0,m=b,b=p,p=l,l=M+S|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;mB&&(r=B);for(var c=0;cB&&(r=B);for(var m=0;m>0&255),p.push(b[T]>>8&255),p.push(b[T]>>16&255),p.push(b[T]>>24&255);var U=i(t,p,d);return l&&l(null,1,U),U}l&&C(e)};if(!l)for(;;){var T=R();if(null!=T)return T}R()}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(116).setImmediate)},function(t,e,r){"use strict";var n=r(412),i=r(413),o=i;o.v1=n,o.v4=i,t.exports=o},function(t,e,r){"use strict";var n,i,o=r(173),a=r(174),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(173),i=r(174);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(175);e.Transaction=n.default;var i=r(477);e.FakeTransaction=i.default},function(t,e,r){"use strict";var n=r(416),i=r(417),o=r(177);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(418),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(178),o=r(35),a=r(429).ec,s=r(177),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(179),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(179),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,M=0|this._e,S=0;S<80;S+=1){var E,x;S<16?(E=b(r,n,i,o,l,t[s[S]],h[0],f[S]),x=g(w,_,k,A,M,t[u[S]],d[0],c[S])):S<32?(E=m(r,n,i,o,l,t[s[S]],h[1],f[S]),x=v(w,_,k,A,M,t[u[S]],d[1],c[S])):S<48?(E=y(r,n,i,o,l,t[s[S]],h[2],f[S]),x=y(w,_,k,A,M,t[u[S]],d[2],c[S])):S<64?(E=v(r,n,i,o,l,t[s[S]],h[3],f[S]),x=m(w,_,k,A,M,t[u[S]],d[3],c[S])):(E=g(r,n,i,o,l,t[s[S]],h[4],f[S]),x=b(w,_,k,A,M,t[u[S]],d[4],c[S])),r=l,l=o,o=p(i,10),i=n,n=E,w=M,M=A,A=p(k,10),k=_,_=x}var I=this._b+i+A|0;this._b=this._c+o+M|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(423),n.sha1=r(424),n.sha224=r(425),n.sha256=r(180),n.sha384=r(426),n.sha512=r(181)},function(t,e,r){"use strict";var n=r(11),i=r(39),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(39),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(180),o=r(39),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(181),o=r(39),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(56).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(430).version,n.utils=r(23),n.rand=r(183),n.curve=r(184),n.curves=r(95),n.ec=r(443),n.eddsa=r(447)},function(t){t.exports=JSON.parse('{"_args":[["elliptic@6.5.4","/home/ubuntu/web3.js/packages/web3-eth-accounts"]],"_from":"elliptic@6.5.4","_id":"elliptic@6.5.4","_inBundle":false,"_integrity":"sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"elliptic@6.5.4","name":"elliptic","escapedName":"elliptic","rawSpec":"6.5.4","saveSpec":null,"fetchSpec":"6.5.4"},"_requiredBy":["/secp256k1"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz","_spec":"6.5.4","_where":"/home/ubuntu/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.11.9","brorand":"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1","inherits":"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},"description":"EC cryptography","devDependencies":{"brfs":"^2.0.2","coveralls":"^3.1.0","eslint":"^7.6.0","grunt":"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.5","mocha":"^8.0.1"},"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":{"lint":"eslint lib test","lint:fix":"npm run lint -- --fix","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.4"}')},function(t,e){},function(t,e){},function(t,e,r){"use strict";var n=r(23),i=r(27),o=r(11),a=r(70),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();var e;if(this.curve.zeroA||this.curve.threeA){var r=this;for(e=0;e=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(27),i=r(11),o=r(70),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(27),o=r(11),a=r(70),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,i,o,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){var f=(n=this.curve._mulA(s)).redAdd(u);this.zOne?(t=a.redSub(s).redSub(u).redMul(f.redSub(this.curve.two)),e=f.redMul(n.redSub(u)),r=f.redSqr().redSub(f).redSub(f)):(i=this.z.redSqr(),o=f.redSub(i).redISub(i),t=a.redSub(s).redISub(u).redMul(o),e=f.redMul(n.redSub(u)),r=f.redMul(o))}else n=s.redAdd(u),i=this.curve._mulC(this.z).redSqr(),o=n.redSub(i).redSub(i),t=this.curve._mulC(a.redISub(n)).redMul(o),e=this.curve._mulC(n).redMul(s.redISub(u)),r=n.redMul(o);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(437),e.sha224=r(438),e.sha256=r(186),e.sha384=r(439),e.sha512=r(187)},function(t,e,r){"use strict";var n=r(26),i=r(52),o=r(185),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(96),i=r(182),o=r(36);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(27),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(96),i=r(95),o=r(23),a=o.assert,s=o.parseBytes,u=r(448),f=r(449);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(454)(r(457))},function(t,e,r){"use strict";var n=r(455),i=r(456);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(458);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,M=t[41]^p;l=r^(s<<1|u>>>31),p=i^(u<<1|s>>>31);var S=t[2]^l,E=t[3]^p,x=t[12]^l,I=t[13]^p,O=t[22]^l,P=t[23]^p,B=t[32]^l,C=t[33]^p,R=t[42]^l,T=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,Z=t[26]^l,$=t[27]^p,J=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|M>>>14,wt=M<<18|A>>>14,_t=S<<1|E>>>31,kt=E<<1|S>>>31,At=I<<12|x>>>20,Mt=x<<12|I>>>20,St=O<<10|P>>>22,Et=P<<10|O>>>22,xt=C<<13|B>>>19,It=B<<13|C>>>19,Ot=R<<2|T>>>30,Pt=T<<2|R>>>30,Bt=N<<30|U>>>2,Ct=U<<30|N>>>2,Rt=j<<6|L>>>26,Tt=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=Z<<25|$>>>7,Gt=$<<25|Z>>>7,Wt=J<<21|X>>>11,Yt=X<<21|J>>>11,Zt=tt<<24|Q>>>8,$t=Q<<24|tt>>>8,Jt=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^~Mt&Nt,t[10]=qt^~Qt&bt,t[11]=zt^~te&mt,t[20]=_t^~Rt&Vt,t[21]=kt^~Tt&Gt,t[30]=Jt^~lt&St,t[31]=Xt^~pt&Et,t[40]=Bt^~Ht&ee,t[41]=Ct^~Kt&re,t[2]=At^~Ut&Wt,t[3]=Mt^~Nt&Yt,t[12]=Qt^~bt&xt,t[13]=te^~mt&It,t[22]=Rt^~Vt&ne,t[23]=Tt^~Gt&ie,t[32]=lt^~St&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]=St^~jt&Zt,t[35]=Et^~Lt&$t,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^~Zt&Jt,t[37]=Lt^~$t&Xt,t[46]=yt^~Ot&Bt,t[47]=vt^~Pt&Ct,t[8]=oe^~ht&At,t[9]=ae^~dt&Mt,t[18]=Ft^~qt&Qt,t[19]=Dt^~zt&te,t[28]=gt^~_t&Rt,t[29]=wt^~kt&Tt,t[38]=Zt^~Jt<,t[39]=$t^~Xt&pt,t[48]=Ot^~Bt&Ht,t[49]=Pt^~Ct&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(94),i=r(35),o=r(54),a=r(99);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(189),o=r(53),a=r(97),s=r(54);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(462),ropsten:r(463),rinkeby:r(464),kovan:r(465),goerli:r(466)}},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(468)],["homestead",r(469)],["dao",r(470)],["tangerineWhistle",r(471)],["spuriousDragon",r(472)],["byzantium",r(473)],["constantinople",r(474)],["petersburg",r(475)],["istanbul",r(476)]]},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(176),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(175).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(59).subscriptions,o=r(32),a=r(62),s=function(){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(481),o=function t(e){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(482),h=r(197),d=r(509),l=r(511),p=r(512);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(483),i=r(486),o=r(98),a=r(487),s=r(488),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(484),o=r(98),a=r(485);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(194),i=n("%TypeError%"),o=n("%SyntaxError%"),a=r(195),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(504),o=r(101),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(191),i=r(196);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(101),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,Z=t[22]<<10|t[23]>>>22,$=t[23]<<10|t[22]>>>22,B=t[33]<<13|t[32]>>>19,C=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,J=t[34]<<15|t[35]>>>17,X=t[35]<<15|t[34]>>>17,R=t[45]<<29|t[44]>>>3,T=t[44]<<29|t[45]>>>3,S=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,M=t[49]<<14|t[48]>>>18,t[0]=b^~y&g,t[1]=m^~v&w,t[10]=S^~x&O,t[11]=E^~I&P,t[20]=U^~j&F,t[21]=N^~L&D,t[30]=V^~W&Z,t[31]=G^~Y&$,t[40]=et^~nt&ot,t[41]=rt^~it&at,t[2]=y^~g&_,t[3]=v^~w&k,t[12]=x^~O&B,t[13]=I^~P&C,t[22]=j^~F&q,t[23]=L^~D&z,t[32]=W^~Z&J,t[33]=Y^~$&X,t[42]=nt^~ot&st,t[43]=it^~at&ut,t[4]=g^~_&A,t[5]=w^~k&M,t[14]=O^~B&R,t[15]=P^~C&T,t[24]=F^~q&H,t[25]=D^~z&K,t[34]=Z^~J&Q,t[35]=$^~X&tt,t[44]=ot^~st&ft,t[45]=at^~ut&ct,t[6]=_^~A&b,t[7]=k^~M&m,t[16]=B^~R&S,t[17]=C^~T&E,t[26]=q^~H&U,t[27]=z^~K&N,t[36]=J^~Q&V,t[37]=X^~tt&G,t[46]=st^~ft&et,t[47]=ut^~ct&rt,t[8]=A^~b&y,t[9]=M^~m&v,t[18]=R^~S&x,t[19]=T^~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 S(t)({"":e})}},M=function(t){return function(r){return e.readFile(r).then((function(e){return A(t)({type:a.lookup(r),data:e})}))}},S=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(S(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(S(t));if(e.path)switch(e.kind){case"data":return E(t)(e.path);case"file":return M(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 S(t)(e)}return Promise.reject(new Error("Bad arguments"))}},O=function(t){return function(e){return function(r){return T(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)},B=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)}))},C=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()}))}))},R=function(t){return _(t)("test").then((function(t){return"c9a99c7d326dcc6316f32fe2625b311f6dc49a175e6877681ded93137d3569e7"===t})).catch((function(){return!1}))},T=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 R(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(S(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 R("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 B(t)})).then((function(t){return e(L("http://localhost:8500")).then((function(){return t}))})).then(C)}))}},download:O,downloadBinary:P,downloadData:b,downloadDataToDisk:g,downloadDirectory:v,downloadDirectoryToDisk:w,downloadEntries:m,downloadRoutes:y,isAvailable:R,startProcess:B,stopProcess:C,upload:I,uploadData:_,uploadDataFromDisk:E,uploadFile:A,uploadFileFromDisk:M,uploadDirectory:S,uploadDirectoryFromDisk:x,uploadToManifest:k,pick:d,hash:h,fromString:j,toString:N}}}])})); +!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],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(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,u=this.blockCount,f=0,c=this.s;f>2]|=e[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&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&&(M(r),o=0)}return i&&(e=r[o],i>0&&(u+=a[e>>4&15]+a[15&e]),i>1&&(u+=a[e>>12&15]+a[e>>8&15]),i>2&&(u+=a[e>>20&15]+a[e>>16&15])),u},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 u=new Uint32Array(e);a>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%r==0&&M(n)}return o&&(e=s<<2,t=n[a],o>0&&(u[e]=255&t),o>1&&(u[e+1]=t>>8&255),o>2&&(u[e+2]=t>>16&255)),u};var M=function(e){var t,r,n,i,o,a,s,f,c,h,d,l,p,b,m,v,y,g,w,_,k,M,S,A,x,E,O,P,R,j,I,T,B,C,U,N,L,q,F,D,z,H,K,W,V,G,Z,J,X,Y,$,Q,ee,te,re,ne,ie,oe,ae,se,ue,fe,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],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^(f<<1|c>>>31),r=o^(c<<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^(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=f^(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],G=e[11]<<4|e[10]>>>28,Z=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,R=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,C=e[2]<<1|e[3]>>>31,U=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,X=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,I=e[32]<<13|e[33]>>>19,fe=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,N=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,Y=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,T=e[45]<<29|e[44]>>>3,B=e[44]<<29|e[45]>>>3,A=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,q=e[26]<<25|e[27]>>>7,F=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,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,E=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,D=e[38]<<8|e[39]>>>24,z=e[39]<<8|e[38]>>>24,M=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]=A^~E&P,e[11]=x^~O&R,e[20]=C^~N&q,e[21]=U^~L&F,e[30]=W^~G&J,e[31]=V^~Z&X,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=E^~P&j,e[13]=O^~R&I,e[22]=N^~q&D,e[23]=L^~F&z,e[32]=G^~J&Y,e[33]=Z^~X&$,e[42]=ne^~oe&se,e[43]=ie^~ae&ue,e[4]=g^~_&M,e[5]=w^~k&S,e[14]=P^~j&T,e[15]=R^~I&B,e[24]=q^~D&H,e[25]=F^~z&K,e[34]=J^~Y&Q,e[35]=X^~$&ee,e[44]=oe^~se&fe,e[45]=ae^~ue&ce,e[6]=_^~M&b,e[7]=k^~S&m,e[16]=j^~T&A,e[17]=I^~B&x,e[26]=D^~H&C,e[27]=z^~K&U,e[36]=Y^~Q&W,e[37]=$^~ee&V,e[46]=se^~fe&te,e[47]=ue^~ce&re,e[8]=M^~b&v,e[9]=S^~m&y,e[18]=T^~A&E,e[19]=B^~x&O,e[28]=H^~C&N,e[29]=K^~U&L,e[38]=Q^~W&G,e[39]=ee^~V&Z,e[48]=fe^~te&ne,e[49]=ce^~re&ie,e[0]^=u[n],e[1]^=u[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 "+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(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,u=n(t,o,a).split(".").map(e.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}}}(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(72)),o=n(r(124)),a=r(88),s=r(237),u=r(12).errors,f=r(14),c=r(225).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){f.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){f.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)),f.isFunction(i)?i(t,t):e.resolve(t)})).catch((function(t){f.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),f.isFunction(i)&&i(t,t)})).on("error",(function(t){e.eventEmitter.emit("error",t),f.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 u.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(489);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(490),i=r(501),o=i.hexStringToBuffer,a=i.profiles,s=r(524).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(75),o=r(494),a=r(495),s=r(238);(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 u=r(496);Object.assign(t,u),t.print=r(500)}).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),u=Math.pow(2,42),f=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,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)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,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)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="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){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,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)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(510);(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(511),i=r(242),o=r(512),a=r(513),s=r(514),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(e,t){return e[t[0]]=new n(t[0],t[1],t[2],t[3]),e}),{}),c=u.reduce((function(e,t){return e[t[1]]=f[t[0]],e}),{});e.exports={names:f,codes:c}},function(e,t,r){"use strict";var n=r(0),i=n(r(7)),o=n(r(8)),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="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){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,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)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,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)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="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){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,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)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(75),o=r(516),a=r(517),s=r(243);(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 u=r(518);Object.assign(t,u),t.print=r(519)},function(e,t,r){"use strict";var n=r(77),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(77),i=r(243).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(76)),i=r(77),o={},a=0,s=Object.entries(i);a>1),"0x","0x"],o=t.slice(0,6).concat(i),a=c.encode(o);return u.recover(f.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 f.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=u.sign(r,t),i=u.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,u.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,u.encodeSignature(n.slice(1,4)),r)):u.recover(e,t))},w.prototype.decrypt=function(e,t,r){if(!o.isString(t))throw new Error("No password given.");var a,s,u=o.isObject(e)?e:JSON.parse(r?e.toLowerCase():e);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(t),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(t),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(e,t,r){var o,a=this.privateKeyToAccount(e,!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(t),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(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),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()))),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:u.toString("hex")},cipher:r.cipher||"aes-128-ctr",kdf:f,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=f(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=f(i.concat(i.random(32),e||i.random(32))),r=i.concat(i.concat(i.random(32),t),i.random(32)),n=f(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),u=f(a);return h("0x"+u.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 */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";(t=e.exports=r(246)).Stream=t,t.Readable=t,t.Writable=r(250),t.Duplex=r(56),t.Transform=r(251),t.PassThrough=r(539),t.finished=r(131),t.pipeline=r(540)},function(e,t){},function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value: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}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return a.alloc(0);for(var t,r,n,i=a.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,r=i,n=s,a.prototype.copy.call(t,r,n),s+=o.data.length,o=o.next;return i}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(o===i.length?n+=i:n+=i.slice(0,e),0==(e-=o)){o===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=a.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,o=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,o),0==(e-=o)){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t0,(function(e){n||(n=e),e&&a.forEach(f),o||(a.forEach(f),i(n))}))}));return t.reduce(c)}},function(e,t,r){"use strict";var n=r(3),i=r(57),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(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(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(e){for(var t,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]=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)+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 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=u},function(e,t,r){"use strict";var n=r(3),i=r(57),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(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(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(e){for(var t,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]=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=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 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=u},function(e,t,r){"use strict";var n=r(3),i=r(252),o=r(57),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 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=u},function(e,t,r){"use strict";var n=r(3),i=r(253),o=r(57),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 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=u},function(e,t,r){"use strict";e.exports=r(121)},function(e,t,r){"use strict";e.exports=r(47)},function(e,t,r){"use strict";e.exports=r(70).Transform},function(e,t,r){"use strict";e.exports=r(70).PassThrough},function(e,t,r){"use strict";var n=r(3),i=r(4).Buffer,o=r(41),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(256)},function(e,t,r){"use strict";(function(t){var n,i,o=r(4).Buffer,a=r(258),s=r(259),u=r(260),f=r(261),c=t.crypto&&t.crypto.subtle,h={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"},d=[];function l(){return i||(i=t.process&&t.process.nextTick?t.process.nextTick:t.queueMicrotask?t.queueMicrotask:t.setImmediate?t.setImmediate:t.setTimeout)}function p(e,t,r,n,i){return c.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return c.deriveBits({name:"PBKDF2",salt:t,iterations:r,hash:{name:i}},e,n<<3)})).then((function(e){return o.from(e)}))}e.exports=function(e,r,i,b,m,v){"function"==typeof m&&(v=m,m=void 0);var y=h[(m=m||"sha1").toLowerCase()];if(y&&"function"==typeof t.Promise){if(a(i,b),e=f(e,s,"Password"),r=f(r,s,"Salt"),"function"!=typeof v)throw new Error("No callback provided to pbkdf2");!function(e,t){e.then((function(e){l()((function(){t(null,e)}))}),(function(e){l()((function(){t(e)}))}))}(function(e){if(t.process&&!t.process.browser)return Promise.resolve(!1);if(!c||!c.importKey||!c.deriveBits)return Promise.resolve(!1);if(void 0!==d[e])return d[e];var r=p(n=n||o.alloc(8),n,10,128,e).then((function(){return!0})).catch((function(){return!1}));return d[e]=r,r}(y).then((function(t){return t?p(e,r,i,b,y):u(e,r,i,b,m)})),v)}else l()((function(){var t;try{t=u(e,r,i,b,m)}catch(e){return v(e)}v(null,t)}))}}).call(this,r(6))},function(e,t,r){"use strict";var n=r(553),i=r(135),o=r(136),a=r(566),s=r(98);function u(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 f(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 u(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=u,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 f(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=f,t.listCiphers=t.getCiphers=function(){return Object.keys(a).concat(i.getCiphers())}},function(e,t,r){"use strict";var n=r(41),i=r(554),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(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 u=e.iv;a.isBuffer(u)||(u=a.from(u)),this._des=i.create({key:o,iv:u,type:t})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],e.exports=u,o(u,n),u.prototype._update=function(e){return a.from(this._des.update(e))},u.prototype._final=function(){return a.from(this._des.final())}},function(e,t,r){"use strict";t.utils=r(262),t.Cipher=r(134),t.DES=r(263),t.CBC=r(555),t.EDE=r(556)},function(e,t,r){"use strict";var n=r(30),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(267),i=r(4).Buffer,o=r(136),a=r(268),s=r(41),u=r(97),f=r(98);function c(e,t,r){s.call(this),this._cache=new h,this._last=void 0,this._cipher=new u.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=f(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(269),i=r(569),o=r(570);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,u){return e.isBuffer(i)||void 0===a[i]?t(r,"binary",i,s):(i=i||"binary",u=u||"binary",s=s||new e([2]),e.isBuffer(s)||(s=new e(s,u)),"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,t){},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(9),i=new(r(270)),o=new n(24),a=new n(11),s=new n(10),u=new n(3),f=new n(7),c=r(269),h=r(46);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(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(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?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value: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}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return a.alloc(0);for(var t,r,n,i=a.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,r=i,n=s,a.prototype.copy.call(t,r,n),s+=o.data.length,o=o.next;return i}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(o===i.length?n+=i:n+=i.slice(0,e),0==(e-=o)){o===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=a.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,o=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,o),0==(e-=o)){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t0,(function(e){n||(n=e),e&&a.forEach(f),o||(a.forEach(f),i(n))}))}));return t.reduce(c)}},function(e,t,r){"use strict";var n=r(138).Buffer,i=r(254),o=r(140),a=r(99).ec,s=r(279),u=r(101),f=r(285);function c(e,t,r,o){if((e=n.from(e.toArray())).length0&&r.ishrn(n),r}function d(e,t,r){var o,a;do{for(o=n.alloc(0);8*o.length=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void i(!1,"Invalid character in "+e)}function f(e,t,r){var n=u(e,r);return r-1>=t&&(n|=u(e,r-1)<<4),n}function c(e,t,r,n){for(var o=0,a=0,s=Math.min(e.length,r),u=t;u=49?f-49+10:f>=17?f-17+10:f,i(f>=0&&a0?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++,this.negative=1),o=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,r){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n=t;n-=2)i=f(e,t,n)<=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;else for(n=(e.length-t)%2==0?t+1:t;n=18?(o-=18,a+=1,this.words[a]|=i>>>26):o+=8;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,u=0,f=r;f1&&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},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{a.prototype[Symbol.for("nodejs.util.inspect.custom")]=d}catch(e){a.prototype.inspect=d}else a.prototype.inspect=d;function d(){return(this.red?""}var l=["","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"],p=[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],b=[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];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?l[6-u.length]+u+r:u+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 f=p[e],c=b[e];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var d=h.modrn(c).toString(e);r=(h=h.idivn(c)).isZero()?d+r:l[f-d.length]+d+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,2)},s&&(a.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function m(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,u=a/67108864|0;r.words[0]=s;for(var f=1;f>>26,h=67108863&u,d=Math.min(f,t.length-1),l=Math.max(0,f-e.length+1);l<=d;l++){var p=f-l|0;c+=(a=(i=0|e.words[p])*(o=0|t.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.toArrayLike=function(e,t,r){this._strip();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");var a=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](a,n),a},a.prototype._toArrayLikeLE=function(e,t){for(var r=0,n=0,i=0,o=0;i>8&255),r>16&255),6===o?(r>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r=0&&(e[r--]=a>>8&255),r>=0&&(e[r--]=a>>16&255),6===o?(r>=0&&(e[r--]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r>=0)for(e[r--]=n;r>=0;)e[r--]=0},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,r=0;return t>=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],M=8191&k,S=k>>>13,A=0|a[5],x=8191&A,E=A>>>13,O=0|a[6],P=8191&O,R=O>>>13,j=0|a[7],I=8191&j,T=j>>>13,B=0|a[8],C=8191&B,U=B>>>13,N=0|a[9],L=8191&N,q=N>>>13,F=0|s[0],D=8191&F,z=F>>>13,H=0|s[1],K=8191&H,W=H>>>13,V=0|s[2],G=8191&V,Z=V>>>13,J=0|s[3],X=8191&J,Y=J>>>13,$=0|s[4],Q=8191&$,ee=$>>>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],ue=8191&se,fe=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=(f+(n=Math.imul(h,D))|0)+((8191&(i=(i=Math.imul(h,z))+Math.imul(d,D)|0))<<13)|0;f=((o=Math.imul(d,z))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(p,D),i=(i=Math.imul(p,z))+Math.imul(b,D)|0,o=Math.imul(b,z);var ve=(f+(n=n+Math.imul(h,K)|0)|0)+((8191&(i=(i=i+Math.imul(h,W)|0)+Math.imul(d,K)|0))<<13)|0;f=((o=o+Math.imul(d,W)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(v,D),i=(i=Math.imul(v,z))+Math.imul(y,D)|0,o=Math.imul(y,z),n=n+Math.imul(p,K)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(b,K)|0,o=o+Math.imul(b,W)|0;var ye=(f+(n=n+Math.imul(h,G)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,G)|0))<<13)|0;f=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(w,D),i=(i=Math.imul(w,z))+Math.imul(_,D)|0,o=Math.imul(_,z),n=n+Math.imul(v,K)|0,i=(i=i+Math.imul(v,W)|0)+Math.imul(y,K)|0,o=o+Math.imul(y,W)|0,n=n+Math.imul(p,G)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(b,G)|0,o=o+Math.imul(b,Z)|0;var ge=(f+(n=n+Math.imul(h,X)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(d,X)|0))<<13)|0;f=((o=o+Math.imul(d,Y)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(M,D),i=(i=Math.imul(M,z))+Math.imul(S,D)|0,o=Math.imul(S,z),n=n+Math.imul(w,K)|0,i=(i=i+Math.imul(w,W)|0)+Math.imul(_,K)|0,o=o+Math.imul(_,W)|0,n=n+Math.imul(v,G)|0,i=(i=i+Math.imul(v,Z)|0)+Math.imul(y,G)|0,o=o+Math.imul(y,Z)|0,n=n+Math.imul(p,X)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(b,X)|0,o=o+Math.imul(b,Y)|0;var we=(f+(n=n+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,Q)|0))<<13)|0;f=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(x,D),i=(i=Math.imul(x,z))+Math.imul(E,D)|0,o=Math.imul(E,z),n=n+Math.imul(M,K)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(S,K)|0,o=o+Math.imul(S,W)|0,n=n+Math.imul(w,G)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(_,G)|0,o=o+Math.imul(_,Z)|0,n=n+Math.imul(v,X)|0,i=(i=i+Math.imul(v,Y)|0)+Math.imul(y,X)|0,o=o+Math.imul(y,Y)|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=(f+(n=n+Math.imul(h,re)|0)|0)+((8191&(i=(i=i+Math.imul(h,ne)|0)+Math.imul(d,re)|0))<<13)|0;f=((o=o+Math.imul(d,ne)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(P,D),i=(i=Math.imul(P,z))+Math.imul(R,D)|0,o=Math.imul(R,z),n=n+Math.imul(x,K)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,n=n+Math.imul(M,G)|0,i=(i=i+Math.imul(M,Z)|0)+Math.imul(S,G)|0,o=o+Math.imul(S,Z)|0,n=n+Math.imul(w,X)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,X)|0,o=o+Math.imul(_,Y)|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=(f+(n=n+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ae)|0)+Math.imul(d,oe)|0))<<13)|0;f=((o=o+Math.imul(d,ae)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(I,D),i=(i=Math.imul(I,z))+Math.imul(T,D)|0,o=Math.imul(T,z),n=n+Math.imul(P,K)|0,i=(i=i+Math.imul(P,W)|0)+Math.imul(R,K)|0,o=o+Math.imul(R,W)|0,n=n+Math.imul(x,G)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(E,G)|0,o=o+Math.imul(E,Z)|0,n=n+Math.imul(M,X)|0,i=(i=i+Math.imul(M,Y)|0)+Math.imul(S,X)|0,o=o+Math.imul(S,Y)|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 Me=(f+(n=n+Math.imul(h,ue)|0)|0)+((8191&(i=(i=i+Math.imul(h,fe)|0)+Math.imul(d,ue)|0))<<13)|0;f=((o=o+Math.imul(d,fe)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(C,D),i=(i=Math.imul(C,z))+Math.imul(U,D)|0,o=Math.imul(U,z),n=n+Math.imul(I,K)|0,i=(i=i+Math.imul(I,W)|0)+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,n=n+Math.imul(P,G)|0,i=(i=i+Math.imul(P,Z)|0)+Math.imul(R,G)|0,o=o+Math.imul(R,Z)|0,n=n+Math.imul(x,X)|0,i=(i=i+Math.imul(x,Y)|0)+Math.imul(E,X)|0,o=o+Math.imul(E,Y)|0,n=n+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(p,fe)|0)+Math.imul(b,ue)|0,o=o+Math.imul(b,fe)|0;var Se=(f+(n=n+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;f=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(L,D),i=(i=Math.imul(L,z))+Math.imul(q,D)|0,o=Math.imul(q,z),n=n+Math.imul(C,K)|0,i=(i=i+Math.imul(C,W)|0)+Math.imul(U,K)|0,o=o+Math.imul(U,W)|0,n=n+Math.imul(I,G)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(T,G)|0,o=o+Math.imul(T,Z)|0,n=n+Math.imul(P,X)|0,i=(i=i+Math.imul(P,Y)|0)+Math.imul(R,X)|0,o=o+Math.imul(R,Y)|0,n=n+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,ee)|0,n=n+Math.imul(M,re)|0,i=(i=i+Math.imul(M,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,ue)|0,i=(i=i+Math.imul(v,fe)|0)+Math.imul(y,ue)|0,o=o+Math.imul(y,fe)|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 Ae=(f+(n=n+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,be)|0)+Math.imul(d,pe)|0))<<13)|0;f=((o=o+Math.imul(d,be)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(L,K),i=(i=Math.imul(L,W))+Math.imul(q,K)|0,o=Math.imul(q,W),n=n+Math.imul(C,G)|0,i=(i=i+Math.imul(C,Z)|0)+Math.imul(U,G)|0,o=o+Math.imul(U,Z)|0,n=n+Math.imul(I,X)|0,i=(i=i+Math.imul(I,Y)|0)+Math.imul(T,X)|0,o=o+Math.imul(T,Y)|0,n=n+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,n=n+Math.imul(x,re)|0,i=(i=i+Math.imul(x,ne)|0)+Math.imul(E,re)|0,o=o+Math.imul(E,ne)|0,n=n+Math.imul(M,oe)|0,i=(i=i+Math.imul(M,ae)|0)+Math.imul(S,oe)|0,o=o+Math.imul(S,ae)|0,n=n+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,fe)|0)+Math.imul(_,ue)|0,o=o+Math.imul(_,fe)|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 xe=(f+(n=n+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;f=((o=o+Math.imul(b,be)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(L,G),i=(i=Math.imul(L,Z))+Math.imul(q,G)|0,o=Math.imul(q,Z),n=n+Math.imul(C,X)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(U,X)|0,o=o+Math.imul(U,Y)|0,n=n+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(T,Q)|0,o=o+Math.imul(T,ee)|0,n=n+Math.imul(P,re)|0,i=(i=i+Math.imul(P,ne)|0)+Math.imul(R,re)|0,o=o+Math.imul(R,ne)|0,n=n+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,ae)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,ae)|0,n=n+Math.imul(M,ue)|0,i=(i=i+Math.imul(M,fe)|0)+Math.imul(S,ue)|0,o=o+Math.imul(S,fe)|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 Ee=(f+(n=n+Math.imul(v,pe)|0)|0)+((8191&(i=(i=i+Math.imul(v,be)|0)+Math.imul(y,pe)|0))<<13)|0;f=((o=o+Math.imul(y,be)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(L,X),i=(i=Math.imul(L,Y))+Math.imul(q,X)|0,o=Math.imul(q,Y),n=n+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(U,Q)|0,o=o+Math.imul(U,ee)|0,n=n+Math.imul(I,re)|0,i=(i=i+Math.imul(I,ne)|0)+Math.imul(T,re)|0,o=o+Math.imul(T,ne)|0,n=n+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,ae)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,ae)|0,n=n+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(E,ue)|0,o=o+Math.imul(E,fe)|0,n=n+Math.imul(M,he)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(S,he)|0,o=o+Math.imul(S,de)|0;var Oe=(f+(n=n+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,be)|0)+Math.imul(_,pe)|0))<<13)|0;f=((o=o+Math.imul(_,be)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,n=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(q,Q)|0,o=Math.imul(q,ee),n=n+Math.imul(C,re)|0,i=(i=i+Math.imul(C,ne)|0)+Math.imul(U,re)|0,o=o+Math.imul(U,ne)|0,n=n+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,ae)|0)+Math.imul(T,oe)|0,o=o+Math.imul(T,ae)|0,n=n+Math.imul(P,ue)|0,i=(i=i+Math.imul(P,fe)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,fe)|0,n=n+Math.imul(x,he)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(E,he)|0,o=o+Math.imul(E,de)|0;var Pe=(f+(n=n+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,be)|0)+Math.imul(S,pe)|0))<<13)|0;f=((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(q,re)|0,o=Math.imul(q,ne),n=n+Math.imul(C,oe)|0,i=(i=i+Math.imul(C,ae)|0)+Math.imul(U,oe)|0,o=o+Math.imul(U,ae)|0,n=n+Math.imul(I,ue)|0,i=(i=i+Math.imul(I,fe)|0)+Math.imul(T,ue)|0,o=o+Math.imul(T,fe)|0,n=n+Math.imul(P,he)|0,i=(i=i+Math.imul(P,de)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,de)|0;var Re=(f+(n=n+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,be)|0)+Math.imul(E,pe)|0))<<13)|0;f=((o=o+Math.imul(E,be)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,n=Math.imul(L,oe),i=(i=Math.imul(L,ae))+Math.imul(q,oe)|0,o=Math.imul(q,ae),n=n+Math.imul(C,ue)|0,i=(i=i+Math.imul(C,fe)|0)+Math.imul(U,ue)|0,o=o+Math.imul(U,fe)|0,n=n+Math.imul(I,he)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(T,he)|0,o=o+Math.imul(T,de)|0;var je=(f+(n=n+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,be)|0)+Math.imul(R,pe)|0))<<13)|0;f=((o=o+Math.imul(R,be)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(L,ue),i=(i=Math.imul(L,fe))+Math.imul(q,ue)|0,o=Math.imul(q,fe),n=n+Math.imul(C,he)|0,i=(i=i+Math.imul(C,de)|0)+Math.imul(U,he)|0,o=o+Math.imul(U,de)|0;var Ie=(f+(n=n+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,be)|0)+Math.imul(T,pe)|0))<<13)|0;f=((o=o+Math.imul(T,be)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,n=Math.imul(L,he),i=(i=Math.imul(L,de))+Math.imul(q,he)|0,o=Math.imul(q,de);var Te=(f+(n=n+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,be)|0)+Math.imul(U,pe)|0))<<13)|0;f=((o=o+Math.imul(U,be)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863;var Be=(f+(n=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,be))+Math.imul(q,pe)|0))<<13)|0;return f=((o=Math.imul(q,be))+(i>>>13)|0)+(Be>>>26)|0,Be&=67108863,u[0]=me,u[1]=ve,u[2]=ye,u[3]=ge,u[4]=we,u[5]=_e,u[6]=ke,u[7]=Me,u[8]=Se,u[9]=Ae,u[10]=xe,u[11]=Ee,u[12]=Oe,u[13]=Pe,u[14]=Re,u[15]=je,u[16]=Ie,u[17]=Te,u[18]=Be,0!==f&&(u[19]=f,r.length++),r};function y(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()}function g(e,t,r){return y(e,t,r)}function w(e,t){this.x=e,this.y=t}Math.imul||(v=m),a.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?v(this,e,t):r<63?m(this,e,t):r<1024?y(this,e,t):g(this,e,t)},w.prototype.makeRBT=function(e){for(var t=new Array(e),r=a.prototype._countBits(e)-1,n=0;n>=1;return n},w.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,r+=o/67108864|0,r+=a>>>26,this.words[n]=67108863&a}return 0!==r&&(this.words[n]=r,this.length++),t?this.ineg():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&1}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,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(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)-(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(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,u=n.length-i.length;if("mod"!==t){(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"!==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.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modrn(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.modrn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=(1<<26)%e,n=0,o=this.length-1;o>=0;o--)n=(r*n+(0|this.words[o]))%e;return t?-n:n},a.prototype.modn=function(e){return this.modrn(e)},a.prototype.idivn=function(e){var t=e<0;t&&(e=-e),i(e<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*r;this.words[n]=o/e|0,r=o%e}return this._strip(),t?this.ineg():this},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),u=new a(1),f=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++f;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()||u.isOdd())&&(s.iadd(c),u.isub(h)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),n.isub(s),o.isub(u)):(r.isub(t),s.isub(n),u.isub(o))}return{a:s,b:u,gcd:r.iushln(f)}},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),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var f=0,c=1;0==(t.words[0]&c)&&f<26;++f,c<<=1);if(f>0)for(t.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);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 E(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 _={k256:null,p224:null,p192:null,p25519:null};function k(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 M(){k.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function S(){k.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){k.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){k.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(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 O(e){E.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)}k.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},k.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},k.prototype.split=function(e,t){e.iushrn(this.n,0,t)},k.prototype.imulK=function(e){return e.imul(this.k)},o(M,k),M.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},M.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(_[e])return _[e];var t;if("k256"===e)t=new M;else if("p224"===e)t=new S;else if("p192"===e)t=new A;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new x}return _[e]=t,t},E.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},E.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")},E.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(h(e,e.umod(this.m)._forceRed(this)),e)},E.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},E.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)},E.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},E.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)},E.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},E.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},E.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},E.prototype.isqr=function(e){return this.imul(e,e.clone())},E.prototype.sqr=function(e){return this.mul(e,e)},E.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),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(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 f=t.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},E.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},E.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new O(e)},o(O,E),O.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},O.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},O.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)},O.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)},O.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e)}).call(this,r(29)(e))},function(e,t){},function(e){e.exports=JSON.parse('{"_args":[["elliptic@6.5.4","/home/anon/Public/code/ChainSafe/git-repos/web3.js"]],"_from":"elliptic@6.5.4","_id":"elliptic@6.5.4","_inBundle":false,"_integrity":"sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==","_location":"/elliptic","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"elliptic@6.5.4","name":"elliptic","escapedName":"elliptic","rawSpec":"6.5.4","saveSpec":null,"fetchSpec":"6.5.4"},"_requiredBy":["/@ethersproject/signing-key","/browserify-sign","/create-ecdh","/ethereumjs-util","/secp256k1","/swarm-js/eth-lib","/web3-eth-accounts/eth-lib","/web3-utils/eth-lib"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz","_spec":"6.5.4","_where":"/home/anon/Public/code/ChainSafe/git-repos/web3.js","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"dependencies":{"bn.js":"^4.11.9","brorand":"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1","inherits":"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},"description":"EC cryptography","devDependencies":{"brfs":"^2.0.2","coveralls":"^3.1.0","eslint":"^7.6.0","grunt":"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.5","mocha":"^8.0.1"},"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":{"lint":"eslint lib test","lint:fix":"npm run lint -- --fix","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.4"}')},function(e,t,r){"use strict";var n=r(31),i=r(9),o=r(3),a=r(100),s=n.assert;function u(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 f(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(u,a),e.exports=u,u.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)}}},u.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()]},u.prototype._getEndoBasis=function(e){for(var t,r,n,o,a,s,u,f,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);f=l.sub(g.mul(d)),c=m.sub(g.mul(p));var w=v.sub(g.mul(b));if(!n&&f.cmp(h)<0)t=u.neg(),r=p,n=f.neg(),o=c;else if(n&&2==++y)break;u=f,l=d,d=f,m=p,p=c,v=b,b=w}a=f.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}]},u.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),u=i.mul(r.b),f=o.mul(n.b);return{k1:e.sub(a).sub(s),k2:u.add(f).neg()}},u.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)},u.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)},u.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},f.prototype.isInfinity=function(){return this.inf},f.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)},f.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)},f.prototype.getX=function(){return this.x.fromRed()},f.prototype.getY=function(){return this.y.fromRed()},f.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)},f.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)},f.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)},f.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))},f.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},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(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),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(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 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(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=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(9),i=r(3),o=r(100),a=r(31);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 u(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(u,o.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new u(this,e,t)},s.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(e,t){return new u(e,t[0],t[1]||e.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.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)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.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()),u=t.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,u)},u.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},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(e){return 0===this.getX().cmp(e.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(e,t,r){"use strict";var n=r(31),i=r(9),o=r(3),a=r(100),s=n.assert;function u(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 f(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(u,a),e.exports=u,u.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},u.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},u.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},u.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 u=s.fromRed().isOdd();return(t&&!u||!t&&u)&&(s=s.redNeg()),this.point(e,s)},u.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)},u.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(f,a.BasePoint),u.prototype.pointFromJSON=function(e){return f.fromJSON(this,e)},u.prototype.point=function(e,t,r,n){return new f(this,e,t,r,n)},f.fromJSON=function(e,t){return new f(e,t[0],t[1],t[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 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),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 e,t,r,n,i,o,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){var f=(n=this.curve._mulA(s)).redAdd(u);this.zOne?(e=a.redSub(s).redSub(u).redMul(f.redSub(this.curve.two)),t=f.redMul(n.redSub(u)),r=f.redSqr().redSub(f).redSub(f)):(i=this.z.redSqr(),o=f.redSub(i).redISub(i),e=a.redSub(s).redISub(u).redMul(o),t=f.redMul(n.redSub(u)),r=f.redMul(o))}else n=s.redAdd(u),i=this.curve._mulC(this.z).redSqr(),o=n.redSub(i).redSub(i),e=this.curve._mulC(a.redISub(n)).redMul(o),t=this.curve._mulC(n).redMul(s.redISub(u)),r=n.redMul(o);return this.curve.point(e,t,r)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},f.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),u=r.redAdd(t),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(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),u=i.redSub(s),f=i.redAdd(s),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(a),h=n.redMul(u).redMul(c);return this.curve.twisted?(t=n.redMul(f).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(f)):(t=n.redMul(f).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(f)),this.curve.point(h,t,r)},f.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},f.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},f.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},f.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},f.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},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(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},f.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}},f.prototype.toP=f.prototype.normalize,f.prototype.mixedAdd=f.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(9),o=r(589),a=r(31),s=r(141),u=r(137),f=a.assert,c=r(590),h=r(591);function d(e){if(!(this instanceof d))return new d(e);"string"==typeof e&&(f(Object.prototype.hasOwnProperty.call(s,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||u(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(),u=t.getPrivate().toArray("be",s),f=e.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(),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,u=a.invm(this.n),f=u.mul(e).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(e,t,r,n){f((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,u=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=u.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(91),i=r(277),o=r(30);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(9),i=r(31),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 u(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 f(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=u(e,r);if(!1===o)return!1;if(o+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var a=u(e,r);if(!1===a)return!1;var f=e.slice(r.place,a+r.place);if(r.place+=a,2!==e[r.place++])return!1;var c=u(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===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(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=f(t),r=f(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(91),i=r(141),o=r(31),a=o.assert,s=o.parseBytes,u=r(593),f=r(594);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()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:u,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,t,r,f,c){var h=a(r);if("ec"===h.type){if("ecdsa"!==f&&"ecdsa/rsa"!==f)throw new Error("wrong public key type");return function(e,t,r){var n=s[r.data.algorithm.curve.join(".")];if(!n)throw new Error("unknown curve "+r.data.algorithm.curve.join("."));var i=new o(n),a=r.data.subjectPrivateKey.data;return i.verify(t,e,a)}(e,t,h)}if("dsa"===h.type){if("dsa"!==f)throw new Error("wrong public key type");return function(e,t,r){var n=r.data.p,o=r.data.q,s=r.data.g,f=r.data.pub_key,c=a.signature.decode(e,"der"),h=c.s,d=c.r;u(h,o),u(d,o);var l=i.mont(n),p=h.invm(o);return 0===s.toRed(l).redPow(new i(t).mul(p).mod(o)).fromRed().mul(f.toRed(l).redPow(d.mul(p).mod(o)).fromRed()).mod(n).mod(o).cmp(d)}(e,t,h)}if("rsa"!==f&&"ecdsa/rsa"!==f)throw new Error("wrong public key type");t=n.concat([c,t]);for(var d=h.modulus.byteLength(),l=[1],p=0;t.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),t],p),a(b,p)),v=s(b,a(m,c));return new u(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):f(l,p)}},function(e,t,r){"use strict";var n=r(101),i=r(286),o=r(287),a=r(9),s=r(140),u=r(78),f=r(288),c=r(4).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?f(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=u("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),f=t.slice(a+1),h=o(s,i(f,a)),d=o(f,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(4),a=r(46),s=o.Buffer,u=o.kMaxLength,f=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>u||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>u)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 f.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)}))}f&&f.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(6),r(5))},function(e,t,r){"use strict";var n=r(9),i=r(129),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")},u=function(e){return o(e).toNumber()},f=function(e){return function(t,r){return"0x"+o(t)[e](o(r)).toString("hex")}},c=f("add"),h=f("mul"),d=f("div"),l=f("sub");e.exports={toString:function(e){return o(e).toString(10)},fromString:a,toNumber:u,fromNumber:s,toEther:function(e){return u(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,u=528734635,f=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=u,w=f,_=void 0,k=void 0,M=void 0,S=void 0,A=void 0;for(k=0;k<16;k++)M=h+4*k,c[k]=(255&e[M])<<24|(255&e[M+1])<<16|(255&e[M+2])<<8|255&e[M+3];for(k=16;k<64;k++)S=((_=c[k-2])>>>17|_<<15)^(_>>>19|_<<13)^_>>>10,A=((_=c[k-15])>>>7|_<<25)^(_>>>18|_<<14)^_>>>3,c[k]=(S+c[k-7]|0)+(A+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,A=((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+A|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,u=u+g|0,f=f+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,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(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),u=[];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;)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(e,t,r,n,i){var o;for(f(e,16*(2*r-1),i,0,16),o=0;o<2*r;o++)u(e,16*o,i,16),s(i,n),f(i,0,e,t+16*o,16);for(o=0;o>>32-t}function s(e,t){f(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 u(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;mj&&(r=j);for(var c=0;cj&&(r=j);for(var m=0;m>0&255),p.push(b[B]>>8&255),p.push(b[B]>>16&255),p.push(b[B]>>24&255);var C=i(e,p,d);return l&&l(null,1,C),C}l&&I(t)};if(!l)for(;;){var B=T();if(null!=B)return B}T()}var l={scrypt:function(e,t,r,n,i,o,a){return new Promise((function(s,u){var f=0;a&&a(0),d(e,t,r,n,i,o,(function(e,t,r){if(e)u(e);else if(r)a&&1!==f&&a(1),s(new Uint8Array(r));else if(a&&t!==f)return f=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(215).setImmediate)},function(e,t,r){"use strict";var n=r(614),i=r(615),o=i;o.v1=n,o.v4=i,e.exports=o},function(e,t,r){"use strict";var n,i,o=r(290),a=r(291),s=0,u=0;e.exports=function(e,t,r){var f=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:u+1,m=p-s+(b-u)/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,u=b,i=d;var v=(1e4*(268435455&(p+=122192928e5))+b)%4294967296;c[f++]=v>>>24&255,c[f++]=v>>>16&255,c[f++]=v>>>8&255,c[f++]=255&v;var y=p/4294967296*1e4&268435455;c[f++]=y>>>8&255,c[f++]=255&y,c[f++]=y>>>24&15|16,c[f++]=y>>>16&255,c[f++]=d>>>8|128,c[f++]=255&d;for(var g=0;g<6;++g)c[f+g]=h[g];return t||a(c)}},function(e,t,r){"use strict";var n=r(290),i=r(291);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(292);t.Transaction=n.default;var i=r(693);t.FakeTransaction=i.default},function(e,t,r){"use strict";var n=function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function s(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}u((n=n.apply(e,t||[])).next())}))},i=function(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=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,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}function i(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]:function(e){return new Uint8Array(e)},t=arguments.length>1?arguments[1]:void 0;return"function"==typeof e&&(e=e(t)),y("output",e,t),e}function _(e){return Object.prototype.toString.call(e).slice(8,-1)}e.exports=function(e){return{contextRandomize:function(t){switch(v(null===t||t instanceof Uint8Array,"Expected seed to be an Uint8Array or null"),null!==t&&y("seed",t,32),e.contextRandomize(t)){case 1:throw new Error(u)}},privateKeyVerify:function(t){return y("private key",t,32),0===e.privateKeyVerify(t)},privateKeyNegate:function(t){switch(y("private key",t,32),e.privateKeyNegate(t)){case 0:return t;case 1:throw new Error(o)}},privateKeyTweakAdd:function(t,r){switch(y("private key",t,32),y("tweak",r,32),e.privateKeyTweakAdd(t,r)){case 0:return t;case 1:throw new Error(a)}},privateKeyTweakMul:function(t,r){switch(y("private key",t,32),y("tweak",r,32),e.privateKeyTweakMul(t,r)){case 0:return t;case 1:throw new Error(s)}},publicKeyVerify:function(t){return y("public key",t,[33,65]),0===e.publicKeyVerify(t)},publicKeyCreate:function(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0;switch(y("private key",t,32),g(r),n=w(n,r?33:65),e.publicKeyCreate(n,t)){case 0:return n;case 1:throw new Error(f);case 2:throw new Error(h)}},publicKeyConvert:function(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0;switch(y("public key",t,[33,65]),g(r),n=w(n,r?33:65),e.publicKeyConvert(n,t)){case 0:return n;case 1:throw new Error(c);case 2:throw new Error(h)}},publicKeyNegate:function(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0;switch(y("public key",t,[33,65]),g(r),n=w(n,r?33:65),e.publicKeyNegate(n,t)){case 0:return n;case 1:throw new Error(c);case 2:throw new Error(o);case 3:throw new Error(h)}},publicKeyCombine:function(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0;v(Array.isArray(t),"Expected public keys to be an Array"),v(t.length>0,"Expected public keys array will have more than zero items");var o,a=n(t);try{for(a.s();!(o=a.n()).done;){var s=o.value;y("public key",s,[33,65])}}catch(e){a.e(e)}finally{a.f()}switch(g(r),i=w(i,r?33:65),e.publicKeyCombine(i,t)){case 0:return i;case 1:throw new Error(c);case 2:throw new Error(d);case 3:throw new Error(h)}},publicKeyTweakAdd:function(t,r){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=arguments.length>3?arguments[3]:void 0;switch(y("public key",t,[33,65]),y("tweak",r,32),g(n),i=w(i,n?33:65),e.publicKeyTweakAdd(i,t,r)){case 0:return i;case 1:throw new Error(c);case 2:throw new Error(a)}},publicKeyTweakMul:function(t,r){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=arguments.length>3?arguments[3]:void 0;switch(y("public key",t,[33,65]),y("tweak",r,32),g(n),i=w(i,n?33:65),e.publicKeyTweakMul(i,t,r)){case 0:return i;case 1:throw new Error(c);case 2:throw new Error(s)}},signatureNormalize:function(t){switch(y("signature",t,64),e.signatureNormalize(t)){case 0:return t;case 1:throw new Error(l)}},signatureExport:function(t,r){y("signature",t,64);var n={output:r=w(r,72),outputlen:72};switch(e.signatureExport(n,t)){case 0:return r.slice(0,n.outputlen);case 1:throw new Error(l);case 2:throw new Error(o)}},signatureImport:function(t,r){switch(y("signature",t),r=w(r,64),e.signatureImport(r,t)){case 0:return r;case 1:throw new Error(l);case 2:throw new Error(o)}},ecdsaSign:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;y("message",t,32),y("private key",r,32),v("Object"===_(n),"Expected options to be an Object"),void 0!==n.data&&y("options.data",n.data),void 0!==n.noncefn&&v("Function"===_(n.noncefn),"Expected options.noncefn to be a Function");var a={signature:i=w(i,64),recid:null};switch(e.ecdsaSign(a,t,r,n.data,n.noncefn)){case 0:return a;case 1:throw new Error(p);case 2:throw new Error(o)}},ecdsaVerify:function(t,r,n){switch(y("signature",t,64),y("message",r,32),y("public key",n,[33,65]),e.ecdsaVerify(t,r,n)){case 0:return!0;case 3:return!1;case 1:throw new Error(l);case 2:throw new Error(c)}},ecdsaRecover:function(t,r,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4?arguments[4]:void 0;switch(y("signature",t,64),v("Number"===_(r)&&r>=0&&r<=3,"Expected recovery id to be a Number within interval [0, 3]"),y("message",n,32),g(i),a=w(a,i?33:65),e.ecdsaRecover(a,t,r,n)){case 0:return a;case 1:throw new Error(l);case 2:throw new Error(b);case 3:throw new Error(o)}},ecdh:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;switch(y("public key",t,[33,65]),y("private key",r,32),v("Object"===_(n),"Expected options to be an Object"),void 0!==n.data&&y("options.data",n.data),void 0!==n.hashfn?(v("Function"===_(n.hashfn),"Expected options.hashfn to be a Function"),void 0!==n.xbuf&&y("options.xbuf",n.xbuf,32),void 0!==n.ybuf&&y("options.ybuf",n.ybuf,32),y("output",i)):i=w(i,32),e.ecdh(i,t,r,n.data,n.hashfn,n.xbuf,n.ybuf)){case 0:return i;case 1:throw new Error(c);case 2:throw new Error(m)}}}}},function(e,t,r){"use strict";var n=new(0,r(295).ec)("secp256k1"),i=n.curve,o=i.n.constructor;function a(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(i.p)>=0)return null;var a=(r=r.toRed(i.red)).redSqr().redIMul(r).redIAdd(i.b).redSqrt();return 3===e!==a.isOdd()&&(a=a.redNeg()),n.keyPair({pub:{x:r,y:a}})}(t,e.subarray(1,33));case 4:case 6:case 7:return 65!==e.length?null:function(e,t,r){var a=new o(t),s=new o(r);if(a.cmp(i.p)>=0||s.cmp(i.p)>=0)return null;if(a=a.toRed(i.red),s=s.toRed(i.red),(6===e||7===e)&&s.isOdd()!==(7===e))return null;var u=a.redSqr().redIMul(a);return s.redSqr().redISub(u.redIAdd(i.b)).isZero()?n.keyPair({pub:{x:a,y:s}}):null}(t,e.subarray(1,33),e.subarray(33,65));default:return null}}function s(e,t){for(var r=t.encode(null,33===e.length),n=0;n=0)return 1;if(r.iadd(new o(e)),r.cmp(i.n)>=0&&r.isub(i.n),r.isZero())return 1;var n=r.toArrayLike(Uint8Array,"be",32);return e.set(n),0},privateKeyTweakMul:function(e,t){var r=new o(t);if(r.cmp(i.n)>=0||r.isZero())return 1;r.imul(new o(e)),r.cmp(i.n)>=0&&(r=r.umod(i.n));var n=r.toArrayLike(Uint8Array,"be",32);return e.set(n),0},publicKeyVerify:function(e){return null===a(e)?1:0},publicKeyCreate:function(e,t){var r=new o(t);return r.cmp(i.n)>=0||r.isZero()?1:(s(e,n.keyFromPrivate(t).getPublic()),0)},publicKeyConvert:function(e,t){var r=a(t);return null===r?1:(s(e,r.getPublic()),0)},publicKeyNegate:function(e,t){var r=a(t);if(null===r)return 1;var n=r.getPublic();return n.y=n.y.redNeg(),s(e,n),0},publicKeyCombine:function(e,t){for(var r=new Array(t.length),n=0;n=0)return 2;var u=n.getPublic().add(i.g.mul(r));return u.isInfinity()?2:(s(e,u),0)},publicKeyTweakMul:function(e,t,r){var n=a(t);return null===n?1:(r=new o(r)).cmp(i.n)>=0||r.isZero()?2:(s(e,n.getPublic().mul(r)),0)},signatureNormalize:function(e){var t=new o(e.subarray(0,32)),r=new o(e.subarray(32,64));return t.cmp(i.n)>=0||r.cmp(i.n)>=0?1:(1===r.cmp(n.nh)&&e.set(i.n.sub(r).toArrayLike(Uint8Array,"be",32),32),0)},signatureExport:function(e,t){var r=t.subarray(0,32),n=t.subarray(32,64);if(new o(r).cmp(i.n)>=0)return 1;if(new o(n).cmp(i.n)>=0)return 1;var a=e.output,s=a.subarray(4,37);s[0]=0,s.set(r,1);for(var u=33,f=0;u>1&&0===s[f]&&!(128&s[f+1]);--u,++f);if(128&(s=s.subarray(f))[0])return 1;if(u>1&&0===s[0]&&!(128&s[1]))return 1;var c=a.subarray(39,72);c[0]=0,c.set(n,1);for(var h=33,d=0;h>1&&0===c[d]&&!(128&c[d+1]);--h,++d);return 128&(c=c.subarray(d))[0]||h>1&&0===c[0]&&!(128&c[1])?1:(e.outputlen=6+u+h,a[0]=48,a[1]=e.outputlen-2,a[2]=2,a[3]=s.length,a.set(s,4),a[4+u]=2,a[5+u]=c.length,a.set(c,6+u),0)},signatureImport:function(e,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 r=t[3];if(0===r)return 1;if(5+r>=t.length)return 1;if(2!==t[4+r])return 1;var n=t[5+r];if(0===n)return 1;if(6+r+n!==t.length)return 1;if(128&t[4])return 1;if(r>1&&0===t[4]&&!(128&t[5]))return 1;if(128&t[r+6])return 1;if(n>1&&0===t[r+6]&&!(128&t[r+7]))return 1;var a=t.subarray(4,4+r);if(33===a.length&&0===a[0]&&(a=a.subarray(1)),a.length>32)return 1;var s=t.subarray(6+r);if(33===s.length&&0===s[0]&&(s=s.slice(1)),s.length>32)throw new Error("S length is too long");var u=new o(a);u.cmp(i.n)>=0&&(u=new o(0));var f=new o(t.subarray(6+r));return f.cmp(i.n)>=0&&(f=new o(0)),e.set(u.toArrayLike(Uint8Array,"be",32),0),e.set(f.toArrayLike(Uint8Array,"be",32),32),0},ecdsaSign:function(e,t,r,a,s){if(s){var u=s;s=function(e){var n=u(t,r,null,a,e);if(!(n instanceof Uint8Array&&32===n.length))throw new Error("This is the way");return new o(n)}}var f,c=new o(r);if(c.cmp(i.n)>=0||c.isZero())return 1;try{f=n.sign(t,r,{canonical:!0,k:s,pers:a})}catch(e){return 1}return e.signature.set(f.r.toArrayLike(Uint8Array,"be",32),0),e.signature.set(f.s.toArrayLike(Uint8Array,"be",32),32),e.recid=f.recoveryParam,0},ecdsaVerify:function(e,t,r){var s={r:e.subarray(0,32),s:e.subarray(32,64)},u=new o(s.r),f=new o(s.s);if(u.cmp(i.n)>=0||f.cmp(i.n)>=0)return 1;if(1===f.cmp(n.nh)||u.isZero()||f.isZero())return 3;var c=a(r);if(null===c)return 2;var h=c.getPublic();return n.verify(t,s,h)?0:3},ecdsaRecover:function(e,t,r,a){var u,f={r:t.slice(0,32),s:t.slice(32,64)},c=new o(f.r),h=new o(f.s);if(c.cmp(i.n)>=0||h.cmp(i.n)>=0)return 1;if(c.isZero()||h.isZero())return 2;try{u=n.recoverPubKey(a,f,r)}catch(e){return 2}return s(e,u),0},ecdh:function(e,t,r,s,u,f,c){var h=a(t);if(null===h)return 1;var d=new o(r);if(d.cmp(i.n)>=0||d.isZero())return 2;var l=h.getPublic().mul(d);if(void 0===u)for(var p=l.encode(null,!0),b=n.hash().update(p).digest(),m=0;m<32;++m)e[m]=b[m];else{f||(f=new Uint8Array(32));for(var v=l.getX().toArray("be",32),y=0;y<32;++y)f[y]=v[y];c||(c=new Uint8Array(32));for(var g=l.getY().toArray("be",32),w=0;w<32;++w)c[w]=g[w];var _=u(f,c,s);if(!(_ instanceof Uint8Array&&_.length===e.length))return 2;e.set(_)}return 0}}},function(e){e.exports=JSON.parse('{"_from":"elliptic@^6.5.2","_id":"elliptic@6.5.4","_inBundle":false,"_integrity":"sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==","_location":"/ethereumjs-tx/elliptic","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"elliptic@^6.5.2","name":"elliptic","escapedName":"elliptic","rawSpec":"^6.5.2","saveSpec":null,"fetchSpec":"^6.5.2"},"_requiredBy":["/ethereumjs-tx/ethereumjs-util","/ethereumjs-tx/secp256k1"],"_resolved":"https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz","_shasum":"da37cebd31e79a1367e941b592ed1fbebd58abbb","_spec":"elliptic@^6.5.2","_where":"/home/anon/Public/code/ChainSafe/git-repos/web3.js/packages/web3-eth-accounts/node_modules/ethereumjs-tx/node_modules/ethereumjs-util","author":{"name":"Fedor Indutny","email":"fedor@indutny.com"},"bugs":{"url":"https://github.com/indutny/elliptic/issues"},"bundleDependencies":false,"dependencies":{"bn.js":"^4.11.9","brorand":"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1","inherits":"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"},"deprecated":false,"description":"EC cryptography","devDependencies":{"brfs":"^2.0.2","coveralls":"^3.1.0","eslint":"^7.6.0","grunt":"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.5","mocha":"^8.0.1"},"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":{"lint":"eslint lib test","lint:fix":"npm run lint -- --fix","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.4"}')},function(e,t){},function(e,t){},function(e,t,r){"use strict";var n=r(32),i=r(19),o=r(11),a=r(102),s=n.assert;function u(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 f(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(u,a),e.exports=u,u.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)}}},u.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()]},u.prototype._getEndoBasis=function(e){for(var t,r,n,o,a,s,u,f,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);f=l.sub(g.mul(d)),c=m.sub(g.mul(p));var w=v.sub(g.mul(b));if(!n&&f.cmp(h)<0)t=u.neg(),r=p,n=f.neg(),o=c;else if(n&&2==++y)break;u=f,l=d,d=f,m=p,p=c,v=b,b=w}a=f.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}]},u.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),u=i.mul(r.b),f=o.mul(n.b);return{k1:e.sub(a).sub(s),k2:u.add(f).neg()}},u.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)},u.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)},u.prototype._endoWnafMulAdd=function(e,t,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},f.prototype.isInfinity=function(){return this.inf},f.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)},f.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)},f.prototype.getX=function(){return this.x.fromRed()},f.prototype.getY=function(){return this.y.fromRed()},f.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)},f.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)},f.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)},f.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))},f.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},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(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),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(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 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(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var r=this;for(t=0;t=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(19),i=r(11),o=r(102),a=r(32);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 u(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(u,o.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(a.toArray(e,t),1)},s.prototype.point=function(e,t){return new u(this,e,t)},s.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(e,t){return new u(e,t[0],t[1]||e.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.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)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.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()),u=t.x.redMul(o.redISub(a).redSqr());return this.curve.point(s,u)},u.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},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(e){return 0===this.getX().cmp(e.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(e,t,r){"use strict";var n=r(32),i=r(19),o=r(11),a=r(102),s=n.assert;function u(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 f(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(u,a),e.exports=u,u.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},u.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},u.prototype.jpoint=function(e,t,r,n){return this.point(e,t,r,n)},u.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 u=s.fromRed().isOdd();return(t&&!u||!t&&u)&&(s=s.redNeg()),this.point(e,s)},u.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)},u.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(f,a.BasePoint),u.prototype.pointFromJSON=function(e){return f.fromJSON(this,e)},u.prototype.point=function(e,t,r,n){return new f(this,e,t,r,n)},f.fromJSON=function(e,t){return new f(e,t[0],t[1],t[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 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),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 e,t,r,n,i,o,a=this.x.redAdd(this.y).redSqr(),s=this.x.redSqr(),u=this.y.redSqr();if(this.curve.twisted){var f=(n=this.curve._mulA(s)).redAdd(u);this.zOne?(e=a.redSub(s).redSub(u).redMul(f.redSub(this.curve.two)),t=f.redMul(n.redSub(u)),r=f.redSqr().redSub(f).redSub(f)):(i=this.z.redSqr(),o=f.redSub(i).redISub(i),e=a.redSub(s).redISub(u).redMul(o),t=f.redMul(n.redSub(u)),r=f.redMul(o))}else n=s.redAdd(u),i=this.curve._mulC(this.z).redSqr(),o=n.redSub(i).redSub(i),e=this.curve._mulC(a.redISub(n)).redMul(o),t=this.curve._mulC(n).redMul(s.redISub(u)),r=n.redMul(o);return this.curve.point(e,t,r)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},f.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),u=r.redAdd(t),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(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),u=i.redSub(s),f=i.redAdd(s),c=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(a),h=n.redMul(u).redMul(c);return this.curve.twisted?(t=n.redMul(f).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(f)):(t=n.redMul(f).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(f)),this.curve.point(h,t,r)},f.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},f.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},f.prototype.mulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!1)},f.prototype.jmulAdd=function(e,t,r){return this.curve._wnafMulAdd(1,[this,t],[e,r],2,!0)},f.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},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(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},f.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}},f.prototype.toP=f.prototype.normalize,f.prototype.mixedAdd=f.prototype.add},function(e,t,r){"use strict";t.sha1=r(627),t.sha224=r(628),t.sha256=r(300),t.sha384=r(629),t.sha512=r(301)},function(e,t,r){"use strict";var n=r(37),i=r(81),o=r(299),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),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(),u=t.getPrivate().toArray("be",s),f=e.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(),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,u=a.invm(this.n),f=u.mul(e).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(e,t,r,n){f((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,u=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=u.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(148),i=r(296),o=r(51);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(19),i=r(32),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 u(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 f(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=u(e,r);if(!1===o)return!1;if(o+r.place!==e.length)return!1;if(2!==e[r.place++])return!1;var a=u(e,r);if(!1===a)return!1;var f=e.slice(r.place,a+r.place);if(r.place+=a,2!==e[r.place++])return!1;var c=u(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===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(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=f(t),r=f(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(148),i=r(147),o=r(32),a=o.assert,s=o.parseBytes,u=r(638),f=r(639);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()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:u,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;t4294967295)throw new RangeError("requested too many random bytes");var r=i.allocUnsafe(e);if(e>0)if(e>65536)for(var a=0;a=0)throw new Error("couldn't export to DER format");var s=i.g.mul(r);return a(s.getX(),s.getY(),t)},t.privateKeyModInverse=function(t){var r=new n(t);if(r.ucmp(o.n)>=0||r.isZero())throw new Error("private key range is invalid");return r.invm(o.n).toArrayLike(e,"be",32)},t.signatureImport=function(t){var r=new n(t.r);r.ucmp(o.n)>=0&&(r=new n(0));var i=new n(t.s);return i.ucmp(o.n)>=0&&(i=new n(0)),e.concat([r.toArrayLike(e,"be",32),i.toArrayLike(e,"be",32)])},t.ecdhUnsafe=function(e,t,r){void 0===r&&(r=!0);var s=i.keyFromPublic(e),u=new n(t);if(u.ucmp(o.n)>=0||u.isZero())throw new Error("scalar was invalid (zero or overflow)");var f=s.pub.mul(u);return a(f.getX(),f.getY(),r)};var a=function(t,r,n){var i;return n?((i=e.alloc(33))[0]=r.isOdd()?3:2,t.toArrayLike(e,"be",32).copy(i,1)):((i=e.alloc(65))[0]=4,t.toArrayLike(e,"be",32).copy(i,1),r.toArrayLike(e,"be",32).copy(i,33)),i}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var r=e.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]),n=e.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(t,i,o){void 0===o&&(o=!0);var a=e.from(o?r:n);return t.copy(a,o?8:9),i.copy(a,o?181:214),a},t.privateKeyImport=function(e){var t=e.length,r=0;if(t2)return null;if(t<(r+=1)+n)return null;var i=e[r+n-1]|(n>1?e[r+n-2]<<8:0);return t<(r+=n)+i||t32||ti)return null;if(2!==t[o++])return null;var s=t[o++];if(128&s){if(o+(a=s-128)>i)return null;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)return null;var u=o;if(o+=s,2!==t[o++])return null;var f=t[o++];if(128&f){if(o+(a=f-128)>i)return null;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)return null;var c=o;for(o+=f;s>0&&0===t[u];s-=1,u+=1);if(s>32)return null;var h=t.slice(u,u+s);for(h.copy(r,32-h.length);f>0&&0===t[c];f-=1,c+=1);if(f>32)return null;var d=t.slice(c,c+f);return d.copy(n,32-d.length),{r:r,s:n}}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";var n=r(302);e.exports=function(e){return"string"!=typeof e?e:n(e)?e.slice(2):e}},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.KECCAK256_RLP=t.KECCAK256_RLP_S=t.KECCAK256_RLP_ARRAY=t.KECCAK256_RLP_ARRAY_S=t.KECCAK256_NULL=t.KECCAK256_NULL_S=t.TWO_POW256=t.MAX_INTEGER=void 0;var n=r(19);t.MAX_INTEGER=new n("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",16),t.TWO_POW256=new n("10000000000000000000000000000000000000000000000000000000000000000",16),t.KECCAK256_NULL_S="c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",t.KECCAK256_NULL=e.from(t.KECCAK256_NULL_S,"hex"),t.KECCAK256_RLP_ARRAY_S="1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",t.KECCAK256_RLP_ARRAY=e.from(t.KECCAK256_RLP_ARRAY_S,"hex"),t.KECCAK256_RLP_S="56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",t.KECCAK256_RLP=e.from(t.KECCAK256_RLP_S,"hex")}).call(this,r(2).Buffer)},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.importPublic=t.privateToPublic=t.privateToAddress=t.publicToAddress=t.pubToAddress=t.isValidPublic=t.isValidPrivate=t.isPrecompiled=t.generateAddress2=t.generateAddress=t.isValidChecksumAddress=t.toChecksumAddress=t.isZeroAddress=t.isValidAddress=t.zeroAddress=void 0;var n=r(303),i=r(82),o=r(146),a=r(19),s=r(83),u=r(151);t.zeroAddress=function(){var e=s.zeros(20);return s.bufferToHex(e)},t.isValidAddress=function(e){return/^0x[0-9a-fA-F]{40}$/.test(e)},t.isZeroAddress=function(e){return t.zeroAddress()===s.addHexPrefix(e)},t.toChecksumAddress=function(e,t){e=i.stripHexPrefix(e).toLowerCase();for(var r=void 0!==t?t.toString()+"0x":"",n=u.keccak(r+e).toString("hex"),o="0x",a=0;a=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()?u.rlphash([t,null]).slice(-20):u.rlphash([t,e.from(n.toArray())]).slice(-20)},t.generateAddress2=function(t,r,i){var o=s.toBuffer(t),a=s.toBuffer(r),f=s.toBuffer(i);return n(20===o.length),n(32===a.length),u.keccak256(e.concat([e.from("ff","hex"),o,a,u.keccak256(f)])).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),u.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";Object.defineProperty(t,"__esModule",{value:!0});var n=r(648),i=r(649);t.keccak224=n.createHashFunction((function(){return i("keccak224")})),t.keccak256=n.createHashFunction((function(){return i("keccak256")})),t.keccak384=n.createHashFunction((function(){return i("keccak384")})),t.keccak512=n.createHashFunction((function(){return i("keccak512")}))},function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.createHashFunction=function(t){return function(r){var n=t();return n.update(r),e.from(n.digest())}}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";e.exports=r(650)(r(653))},function(e,t,r){"use strict";var n=r(651),i=r(652);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";(function(t){var n=r(0),i=n(r(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18));function f(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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,s.default)(this,r)}}var c=r(96).Transform;e.exports=function(e){return function(r){(0,a.default)(s,r);var n=f(s);function s(t,r,o,a,u){var f;return(0,i.default)(this,s),(f=n.call(this,u))._rate=t,f._capacity=r,f._delimitedSuffix=o,f._hashBitLength=a,f._options=u,f._state=new e,f._state.initialize(t,r),f._finalized=!1,f}return(0,o.default)(s,[{key:"_transform",value:function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)}},{key:"_flush",value:function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)}},{key:"update",value:function(e,r){if(!t.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 t.isBuffer(e)||(e=t.from(e,r)),this._state.absorb(e),this}},{key:"digest",value: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}},{key:"_resetState",value:function(){return this._state.initialize(this._rate,this._capacity),this}},{key:"_clone",value:function(){var e=new s(this._rate,this._capacity,this._delimitedSuffix,this._hashBitLength,this._options);return this._state.copy(e._state),e._finalized=this._finalized,e}}]),s}(c)}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";(function(t){var n=r(0),i=n(r(7)),o=n(r(8)),a=n(r(20)),s=n(r(21)),u=n(r(18));function f(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 Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(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,s.default)(this,r)}}var c=r(96).Transform;e.exports=function(e){return function(r){(0,a.default)(s,r);var n=f(s);function s(t,r,o,a){var u;return(0,i.default)(this,s),(u=n.call(this,a))._rate=t,u._capacity=r,u._delimitedSuffix=o,u._options=a,u._state=new e,u._state.initialize(t,r),u._finalized=!1,u}return(0,o.default)(s,[{key:"_transform",value:function(e,t,r){var n=null;try{this.update(e,t)}catch(e){n=e}r(n)}},{key:"_flush",value:function(){}},{key:"_read",value:function(e){this.push(this.squeeze(e))}},{key:"update",value:function(e,r){if(!t.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 t.isBuffer(e)||(e=t.from(e,r)),this._state.absorb(e),this}},{key:"squeeze",value: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}},{key:"_resetState",value:function(){return this._state.initialize(this._rate,this._capacity),this}},{key:"_clone",value:function(){var e=new s(this._rate,this._capacity,this._delimitedSuffix,this._options);return this._state.copy(e._state),e._finalized=this._finalized,e}}]),s}(c)}}).call(this,r(2).Buffer)},function(e,t,r){"use strict";(function(t){var n=r(654);function i(){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}i.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},i.prototype.absorb=function(e){for(var t=0;t>>this.count%4*8&255,this.count+=1,this.count===this.blockSize&&(n.p1600(this.state),this.count=0);return r},i.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=i}).call(this,r(2).Buffer)},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],u=e[5]^e[15]^e[25]^e[35]^e[45],f=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,M=e[40]^l,S=e[41]^p;l=r^(s<<1|u>>>31),p=i^(u<<1|s>>>31);var A=e[2]^l,x=e[3]^p,E=e[12]^l,O=e[13]^p,P=e[22]^l,R=e[23]^p,j=e[32]^l,I=e[33]^p,T=e[42]^l,B=e[43]^p;l=o^(f<<1|c>>>31),p=a^(c<<1|f>>>31);var C=e[4]^l,U=e[5]^p,N=e[14]^l,L=e[15]^p,q=e[24]^l,F=e[25]^p,D=e[34]^l,z=e[35]^p,H=e[44]^l,K=e[45]^p;l=s^(h<<1|d>>>31),p=u^(d<<1|h>>>31);var W=e[6]^l,V=e[7]^p,G=e[16]^l,Z=e[17]^p,J=e[26]^l,X=e[27]^p,Y=e[36]^l,$=e[37]^p,Q=e[46]^l,ee=e[47]^p;l=f^(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,ue=e[39]^p,fe=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=M<<18|S>>>14,we=S<<18|M>>>14,_e=A<<1|x>>>31,ke=x<<1|A>>>31,Me=O<<12|E>>>20,Se=E<<12|O>>>20,Ae=P<<10|R>>>22,xe=R<<10|P>>>22,Ee=I<<13|j>>>19,Oe=j<<13|I>>>19,Pe=T<<2|B>>>30,Re=B<<2|T>>>30,je=U<<30|C>>>2,Ie=C<<30|U>>>2,Te=N<<6|L>>>26,Be=L<<6|N>>>26,Ce=F<<11|q>>>21,Ue=q<<11|F>>>21,Ne=D<<15|z>>>17,Le=z<<15|D>>>17,qe=K<<29|H>>>3,Fe=H<<29|K>>>3,De=W<<28|V>>>4,ze=V<<28|W>>>4,He=Z<<23|G>>>9,Ke=G<<23|Z>>>9,We=J<<25|X>>>7,Ve=X<<25|J>>>7,Ge=Y<<21|$>>>11,Ze=$<<21|Y>>>11,Je=ee<<24|Q>>>8,Xe=Q<<24|ee>>>8,Ye=te<<27|re>>>5,$e=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|ue>>>24,it=ue<<8|se>>>24,ot=fe<<14|ce>>>18,at=ce<<14|fe>>>18;e[0]=he^~Me&Ce,e[1]=de^~Se&Ue,e[10]=De^~Qe&be,e[11]=ze^~et&me,e[20]=_e^~Te&We,e[21]=ke^~Be&Ve,e[30]=Ye^~le&Ae,e[31]=$e^~pe&xe,e[40]=je^~He&tt,e[41]=Ie^~Ke&rt,e[2]=Me^~Ce&Ge,e[3]=Se^~Ue&Ze,e[12]=Qe^~be&Ee,e[13]=et^~me&Oe,e[22]=Te^~We&nt,e[23]=Be^~Ve&it,e[32]=le^~Ae&Ne,e[33]=pe^~xe&Le,e[42]=He^~tt&ve,e[43]=Ke^~rt&ye,e[4]=Ce^~Ge&ot,e[5]=Ue^~Ze&at,e[14]=be^~Ee&qe,e[15]=me^~Oe&Fe,e[24]=We^~nt&ge,e[25]=Ve^~it&we,e[34]=Ae^~Ne&Je,e[35]=xe^~Le&Xe,e[44]=tt^~ve&Pe,e[45]=rt^~ye&Re,e[6]=Ge^~ot&he,e[7]=Ze^~at&de,e[16]=Ee^~qe&De,e[17]=Oe^~Fe&ze,e[26]=nt^~ge&_e,e[27]=it^~we&ke,e[36]=Ne^~Je&Ye,e[37]=Le^~Xe&$e,e[46]=ve^~Pe&je,e[47]=ye^~Re&Ie,e[8]=ot^~he&Me,e[9]=at^~de&Se,e[18]=qe^~De&Qe,e[19]=Fe^~ze&et,e[28]=ge^~_e&Te,e[29]=we^~ke&Be,e[38]=Je^~Ye&le,e[39]=Xe^~$e&pe,e[48]=Pe^~je&He,e[49]=Re^~Ie&Ke,e[0]^=n[2*t],e[1]^=n[2*t+1]}}},function(e,t,r){"use strict";var n=r(11),i=r(656),o=r(666),a=r(667),s=r(672);function u(e){s.call(this,"digest"),this._hash=e}n(u,s),u.prototype._update=function(e){this._hash.update(e)},u.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 u(a(e))}},function(e,t,r){"use strict";var n=r(11),i=r(304),o=r(34).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(e,t){return e<>>32-t}function f(e,t,r,n,i,o,a){return u(e+(t&r|~t&n)+i+o|0,a)+t|0}function c(e,t,r,n,i,o,a){return u(e+(t&n|r&~n)+i+o|0,a)+t|0}function h(e,t,r,n,i,o,a){return u(e+(t^r^n)+i+o|0,a)+t|0}function d(e,t,r,n,i,o,a){return u(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=f(r,n,i,o,e[0],3614090360,7),o=f(o,r,n,i,e[1],3905402710,12),i=f(i,o,r,n,e[2],606105819,17),n=f(n,i,o,r,e[3],3250441966,22),r=f(r,n,i,o,e[4],4118548399,7),o=f(o,r,n,i,e[5],1200080426,12),i=f(i,o,r,n,e[6],2821735955,17),n=f(n,i,o,r,e[7],4249261313,22),r=f(r,n,i,o,e[8],1770035416,7),o=f(o,r,n,i,e[9],2336552879,12),i=f(i,o,r,n,e[10],4294925233,17),n=f(n,i,o,r,e[11],2304563134,22),r=f(r,n,i,o,e[12],1804603682,7),o=f(o,r,n,i,e[13],4254626195,12),i=f(i,o,r,n,e[14],2792965006,17),r=c(r,n=f(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";(t=e.exports=r(305)).Stream=t,t.Readable=t,t.Writable=r(309),t.Duplex=r(61),t.Transform=r(310),t.PassThrough=r(664),t.finished=r(152),t.pipeline=r(665)},function(e,t){},function(e,t,r){"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){for(var r=0;r0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value: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}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r}},{key:"concat",value:function(e){if(0===this.length)return a.alloc(0);for(var t,r,n,i=a.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,r=i,n=s,a.prototype.copy.call(t,r,n),s+=o.data.length,o=o.next;return i}},{key:"consume",value:function(e,t){var r;return ei.length?i.length:e;if(o===i.length?n+=i:n+=i.slice(0,e),0==(e-=o)){o===i.length?(++r,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(e){var t=a.allocUnsafe(e),r=this.head,n=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var i=r.data,o=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,o),0==(e-=o)){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,t}},{key:u,value:function(e,t){return s(this,function(e){for(var t=1;t0,(function(e){n||(n=e),e&&a.forEach(f),o||(a.forEach(f),i(n))}))}));return t.reduce(c)}},function(e,t,r){"use strict";var n=r(2).Buffer,i=r(11),o=r(304),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(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,M=0|this._d,S=0|this._e,A=0;A<80;A+=1){var x,E;A<16?(x=b(r,n,i,o,l,e[s[A]],h[0],f[A]),E=g(w,_,k,M,S,e[u[A]],d[0],c[A])):A<32?(x=m(r,n,i,o,l,e[s[A]],h[1],f[A]),E=y(w,_,k,M,S,e[u[A]],d[1],c[A])):A<48?(x=v(r,n,i,o,l,e[s[A]],h[2],f[A]),E=v(w,_,k,M,S,e[u[A]],d[2],c[A])):A<64?(x=y(r,n,i,o,l,e[s[A]],h[3],f[A]),E=m(w,_,k,M,S,e[u[A]],d[3],c[A])):(x=g(r,n,i,o,l,e[s[A]],h[4],f[A]),E=b(w,_,k,M,S,e[u[A]],d[4],c[A])),r=l,l=o,o=p(i,10),i=n,n=x,w=S,S=M,M=p(k,10),k=_,_=E}var O=this._b+i+M|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=O},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(668),n.sha1=r(669),n.sha224=r(670),n.sha256=r(311),n.sha384=r(671),n.sha512=r(312)},function(e,t,r){"use strict";var n=r(11),i=r(62),o=r(34).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function f(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(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(e){for(var t,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]=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)+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 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=u},function(e,t,r){"use strict";var n=r(11),i=r(62),o=r(34).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,i.call(this,64,56)}function f(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(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(e){for(var t,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]=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=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 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=u},function(e,t,r){"use strict";var n=r(11),i=r(311),o=r(62),a=r(34).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 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=u},function(e,t,r){"use strict";var n=r(11),i=r(312),o=r(62),a=r(34).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 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=u},function(e,t,r){"use strict";var n=r(34).Buffer,i=r(96).Transform,o=r(35).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(11)(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";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.hashPersonalMessage=t.isValidSignature=t.fromRpcSig=t.toRpcSig=t.ecrecover=t.ecsign=void 0;var n=r(146),i=r(19),o=r(83),a=r(151);function s(e,t){return t?e-(2*t+35):e-27}function u(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,f){var c=e.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(t,c,h);return n.publicKeyConvert(d,!1).slice(1)},t.toRpcSig=function(t,r,n,i){if(!u(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),f=new i("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",16);if(32!==t.length||32!==r.length)return!1;if(!u(s(e,o)))return!1;var c=new i(t),h=new i(r);return!(c.isZero()||c.gt(f)||h.isZero()||h.gt(f))&&(!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}),t.defineProperties=void 0;var i=r(303),o=r(82),a=r(149),s=r(83);t.defineProperties=function(t,r,u){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})})),u)if("string"==typeof u&&(u=e.from(o.stripHexPrefix(u),"hex")),e.isBuffer(u)&&(u=a.decode(u)),Array.isArray(u)){if(u.length>t._fields.length)throw new Error("wrong number of fields in data");u.forEach((function(e,r){t[t._fields[r]]=s.toBuffer(e)}))}else{if("object"!==(0,n.default)(u))throw new Error("invalid data");var f=Object.keys(u);r.forEach((function(e){-1!==f.indexOf(e.name)&&(t[e.name]=u[e.name]),-1!==f.indexOf(e.alias)&&(t[e.alias]=u[e.alias])}))}}}).call(this,r(2).Buffer)},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,u=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";Object.defineProperty(t,"__esModule",{value:!0}),t.chains=void 0,t.chains={names:{1:"mainnet",3:"ropsten",4:"rinkeby",42:"kovan",5:"goerli"},mainnet:r(677),ropsten:r(678),rinkeby:r(679),kovan:r(680),goerli:r(681)}},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":9069000,"consensus":"pow","finality":null},{"name":"muirGlacier","block":9200000,"consensus":"pow","finality":null}],"bootstrapNodes":[{"ip":"18.138.108.67","port":30303,"id":"d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666","location":"ap-southeast-1-001","comment":"bootnode-aws-ap-southeast-1-001"},{"ip":"3.209.45.79","port":30303,"id":"22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de","location":"us-east-1-001","comment":"bootnode-aws-us-east-1-001"},{"ip":"34.255.23.113","port":30303,"id":"ca6de62fce278f96aea6ec5a2daadb877e51651247cb96ee310a318def462913b653963c155a0ef6c7d50048bba6e6cea881130857413d9f50a621546b590758","location":"eu-west-1-001","comment":"bootnode-aws-eu-west-1-001"},{"ip":"35.158.244.151","port":30303,"id":"279944d8dcd428dffaa7436f25ca0ca43ae19e7bcf94a8fb7d1641651f92d121e972ac2e8f381414b80cc8e5555811c2ec6e1a99bb009b3f53c4c69923e11bd8","location":"eu-central-1-001","comment":"bootnode-aws-eu-central-1-001"},{"ip":"52.187.207.27","port":30303,"id":"8499da03c47d637b20eee24eec3c356c9a2e6148d6fe25ca195c7949ab8ec2c03e3556126b0d7ed644675e78c4318b08691b7b57de10e5f0d40d05b09238fa0a","location":"australiaeast-001","comment":"bootnode-azure-australiaeast-001"},{"ip":"191.234.162.198","port":30303,"id":"103858bdb88756c71f15e9b5e09b56dc1be52f0a5021d46301dbbfb7e130029cc9d0d6f73f693bc29b665770fff7da4d34f3c6379fe12721b5d7a0bcb5ca1fc1","location":"brazilsouth-001","comment":"bootnode-azure-brazilsouth-001"},{"ip":"52.231.165.108","port":30303,"id":"715171f50508aba88aecd1250af392a45a330af91d7b90701c436b618c86aaa1589c9184561907bebbb56439b8f8787bc01f49a7c77276c58c1b09822d75e8e8","location":"koreasouth-001","comment":"bootnode-azure-koreasouth-001"},{"ip":"104.42.217.25","port":30303,"id":"5d6d7cd20d6da4bb83a1d28cadb5d409b64edf314c0335df658c1a54e32c7c4a7ab7823d57c39b6a757556e68ff1df17c748b698544a55cb488b52479a92b60f","location":"westus-001","comment":"bootnode-azure-westus-001"}]}')},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":6485846,"consensus":"pow","finality":null},{"name":"muirGlacier","block":7117117,"consensus":"pow","finality":null}],"bootstrapNodes":[{"ip":"52.176.7.10","port":30303,"id":"30b7ab30a01c124a6cceca36863ece12c4f5fa68e3ba9b0b51407ccc002eeed3b3102d20a88f1c1d3c3154e2449317b8ef95090e77b312d5cc39354f86d5d606","location":"","comment":"US-Azure geth"},{"ip":"52.176.100.77","port":30303,"id":"865a63255b3bb68023b6bffd5095118fcc13e79dcf014fe4e47e065c350c7cc72af2e53eff895f11ba1bbb6a2b33271c1116ee870f266618eadfc2e78aa7349c","location":"","comment":"US-Azure parity"},{"ip":"52.232.243.152","port":30303,"id":"6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f","location":"","comment":"Parity"},{"ip":"192.81.208.223","port":30303,"id":"94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09","location":"","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":3660663,"consensus":"poa","finality":null},{"name":"petersburg","block":4321234,"consensus":"poa","finality":null},{"name":"istanbul","block":5435345,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"52.169.42.101","port":30303,"id":"a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf","location":"","comment":"IE"},{"ip":"52.3.158.184","port":30303,"id":"343149e4feefa15d882d9fe4ac7d88f885bd05ebb735e547f12e12080a9fa07c8014ca6fd7f373123488102fe5e34111f8509cf0b7de3f5b44339c9f25e87cb8","location":"","comment":"INFURA"},{"ip":"159.89.28.211","port":30303,"id":"b6b28890b006743680c52e64e0d16db57f28124885595fa03a562be1d2bf0f3a1da297d56b13da25fb992888fd556d4c1a27b1f39d531bde7de1921c90061cc6","location":"","comment":"AKASHA"}]}')},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":[{"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":5067000,"consensus":"poa","finality":null},{"name":"constantinople","block":9200000,"consensus":"poa","finality":null},{"name":"petersburg","block":10255201,"consensus":"poa","finality":null},{"name":"istanbul","block":14111141,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"116.203.116.241","port":30303,"id":"16898006ba2cd4fa8bf9a3dfe32684c178fa861df144bfc21fe800dc4838a03e342056951fa9fd533dcb0be1219e306106442ff2cf1f7e9f8faa5f2fc1a3aa45","location":"","comment":"1"},{"ip":"3.217.96.11","port":30303,"id":"2909846f78c37510cc0e306f185323b83bb2209e5ff4fdd279d93c60e3f365e3c6e62ad1d2133ff11f9fd6d23ad9c3dad73bb974d53a22f7d1ac5b7dea79d0b0","location":"","comment":"2"},{"ip":"108.61.170.124","port":30303,"id":"740e1c8ea64e71762c71a463a04e2046070a0c9394fcab5891d41301dc473c0cff00ebab5a9bc87fbcb610ab98ac18225ff897bc8b7b38def5975d5ceb0a7d7c","location":"","comment":"3"},{"ip":"157.230.31.163","port":30303,"id":"2909846f78c37510cc0e306f185323b83bb2209e5ff4fdd279d93c60e3f365e3c6e62ad1d2133ff11f9fd6d23ad9c3dad73bb974d53a22f7d1ac5b7dea79d0b0","location":"","comment":"4"}]}')},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":1561651,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"51.141.78.53","port":30303,"id":"011f758e6552d105183b1761c5e2dea0111bc20fd5f6422bc7f91e0fabbec9a6595caf6239b37feb773dddd3f87240d99d859431891e4a642cf2a0a9e6cbb98a","location":"","comment":"Upstream bootnode 1"},{"ip":"13.93.54.137","port":30303,"id":"176b9417f511d05b6b2cf3e34b756cf0a7096b3094572a8f6ef4cdcb9d1f9d00683bf0f83347eebdf3b81c3521c2332086d9592802230bf528eaf606a1d9677b","location":"","comment":"Upstream bootnode 2"},{"ip":"94.237.54.114","port":30313,"id":"46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291","location":"","comment":"Upstream bootnode 3"},{"ip":"52.64.155.147","port":30303,"id":"c1f8b7c2ac4453271fa07d8e9ecf9a2e8285aa0bd0c07df0131f47153306b0736fd3db8924e7a9bf0bed6b1d8d4f87362a71b033dc7c64547728d953e43e59b2","location":"","comment":"Upstream bootnode 4"},{"ip":"213.186.16.82","port":30303,"id":"f4a9c6ee28586009fb5a96c8af13a58ed6d8315a9eee4772212c1d4d9cebe5a8b8a78ea4434f318726317d04a3f531a1ef0420cf9752605a562cfe858c46e263","location":"","comment":"Upstream bootnode 5"},{"ip":"3.11.147.67","port":30303,"id":"a61215641fb8714a373c80edbfa0ea8878243193f57c96eeb44d0bc019ef295abd4e044fd619bfc4c59731a73fb79afe84e9ab6da0c743ceb479cbb6d263fa91","location":"","comment":"Ethereum Foundation bootnode"}]}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hardforks=void 0,t.hardforks=[["chainstart",r(683)],["homestead",r(684)],["dao",r(685)],["tangerineWhistle",r(686)],["spuriousDragon",r(687)],["byzantium",r(688)],["constantinople",r(689)],["petersburg",r(690)],["istanbul",r(691)],["muirGlacier",r(692)]]},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://eips.ethereum.org/EIPS/eip-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 December 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){e.exports=JSON.parse('{"name":"muirGlacier","comment":"HF to delay the difficulty bomb","eip":{"url":"https://eips.ethereum.org/EIPS/eip-2384","status":"Last Call"},"gasConfig":{},"gasPrices":{},"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(293),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(292).default);t.default=s},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,u=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";Object.defineProperty(t,"__esModule",{value:!0}),t.chains=void 0,t.chains={names:{1:"mainnet",3:"ropsten",4:"rinkeby",42:"kovan",5:"goerli"},mainnet:r(696),ropsten:r(697),rinkeby:r(698),kovan:r(699),goerli:r(700)}},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":9069000,"consensus":"pow","finality":null},{"name":"muirGlacier","block":9200000,"consensus":"pow","finality":null}],"bootstrapNodes":[{"ip":"18.138.108.67","port":30303,"id":"d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666","location":"ap-southeast-1-001","comment":"bootnode-aws-ap-southeast-1-001"},{"ip":"3.209.45.79","port":30303,"id":"22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de","location":"us-east-1-001","comment":"bootnode-aws-us-east-1-001"},{"ip":"34.255.23.113","port":30303,"id":"ca6de62fce278f96aea6ec5a2daadb877e51651247cb96ee310a318def462913b653963c155a0ef6c7d50048bba6e6cea881130857413d9f50a621546b590758","location":"eu-west-1-001","comment":"bootnode-aws-eu-west-1-001"},{"ip":"35.158.244.151","port":30303,"id":"279944d8dcd428dffaa7436f25ca0ca43ae19e7bcf94a8fb7d1641651f92d121e972ac2e8f381414b80cc8e5555811c2ec6e1a99bb009b3f53c4c69923e11bd8","location":"eu-central-1-001","comment":"bootnode-aws-eu-central-1-001"},{"ip":"52.187.207.27","port":30303,"id":"8499da03c47d637b20eee24eec3c356c9a2e6148d6fe25ca195c7949ab8ec2c03e3556126b0d7ed644675e78c4318b08691b7b57de10e5f0d40d05b09238fa0a","location":"australiaeast-001","comment":"bootnode-azure-australiaeast-001"},{"ip":"191.234.162.198","port":30303,"id":"103858bdb88756c71f15e9b5e09b56dc1be52f0a5021d46301dbbfb7e130029cc9d0d6f73f693bc29b665770fff7da4d34f3c6379fe12721b5d7a0bcb5ca1fc1","location":"brazilsouth-001","comment":"bootnode-azure-brazilsouth-001"},{"ip":"52.231.165.108","port":30303,"id":"715171f50508aba88aecd1250af392a45a330af91d7b90701c436b618c86aaa1589c9184561907bebbb56439b8f8787bc01f49a7c77276c58c1b09822d75e8e8","location":"koreasouth-001","comment":"bootnode-azure-koreasouth-001"},{"ip":"104.42.217.25","port":30303,"id":"5d6d7cd20d6da4bb83a1d28cadb5d409b64edf314c0335df658c1a54e32c7c4a7ab7823d57c39b6a757556e68ff1df17c748b698544a55cb488b52479a92b60f","location":"westus-001","comment":"bootnode-azure-westus-001"}]}')},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":6485846,"consensus":"pow","finality":null},{"name":"muirGlacier","block":7117117,"consensus":"pow","finality":null}],"bootstrapNodes":[{"ip":"52.176.7.10","port":30303,"id":"30b7ab30a01c124a6cceca36863ece12c4f5fa68e3ba9b0b51407ccc002eeed3b3102d20a88f1c1d3c3154e2449317b8ef95090e77b312d5cc39354f86d5d606","location":"","comment":"US-Azure geth"},{"ip":"52.176.100.77","port":30303,"id":"865a63255b3bb68023b6bffd5095118fcc13e79dcf014fe4e47e065c350c7cc72af2e53eff895f11ba1bbb6a2b33271c1116ee870f266618eadfc2e78aa7349c","location":"","comment":"US-Azure parity"},{"ip":"52.232.243.152","port":30303,"id":"6332792c4a00e3e4ee0926ed89e0d27ef985424d97b6a45bf0f23e51f0dcb5e66b875777506458aea7af6f9e4ffb69f43f3778ee73c81ed9d34c51c4b16b0b0f","location":"","comment":"Parity"},{"ip":"192.81.208.223","port":30303,"id":"94c15d1b9e2fe7ce56e458b9a3b672ef11894ddedd0c6f247e0f1d3487f52b66208fb4aeb8179fce6e3a749ea93ed147c37976d67af557508d199d9594c35f09","location":"","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":3660663,"consensus":"poa","finality":null},{"name":"petersburg","block":4321234,"consensus":"poa","finality":null},{"name":"istanbul","block":5435345,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"52.169.42.101","port":30303,"id":"a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf","location":"","comment":"IE"},{"ip":"52.3.158.184","port":30303,"id":"343149e4feefa15d882d9fe4ac7d88f885bd05ebb735e547f12e12080a9fa07c8014ca6fd7f373123488102fe5e34111f8509cf0b7de3f5b44339c9f25e87cb8","location":"","comment":"INFURA"},{"ip":"159.89.28.211","port":30303,"id":"b6b28890b006743680c52e64e0d16db57f28124885595fa03a562be1d2bf0f3a1da297d56b13da25fb992888fd556d4c1a27b1f39d531bde7de1921c90061cc6","location":"","comment":"AKASHA"}]}')},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":[{"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":5067000,"consensus":"poa","finality":null},{"name":"constantinople","block":9200000,"consensus":"poa","finality":null},{"name":"petersburg","block":10255201,"consensus":"poa","finality":null},{"name":"istanbul","block":14111141,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"116.203.116.241","port":30303,"id":"16898006ba2cd4fa8bf9a3dfe32684c178fa861df144bfc21fe800dc4838a03e342056951fa9fd533dcb0be1219e306106442ff2cf1f7e9f8faa5f2fc1a3aa45","location":"","comment":"1"},{"ip":"3.217.96.11","port":30303,"id":"2909846f78c37510cc0e306f185323b83bb2209e5ff4fdd279d93c60e3f365e3c6e62ad1d2133ff11f9fd6d23ad9c3dad73bb974d53a22f7d1ac5b7dea79d0b0","location":"","comment":"2"},{"ip":"108.61.170.124","port":30303,"id":"740e1c8ea64e71762c71a463a04e2046070a0c9394fcab5891d41301dc473c0cff00ebab5a9bc87fbcb610ab98ac18225ff897bc8b7b38def5975d5ceb0a7d7c","location":"","comment":"3"},{"ip":"157.230.31.163","port":30303,"id":"2909846f78c37510cc0e306f185323b83bb2209e5ff4fdd279d93c60e3f365e3c6e62ad1d2133ff11f9fd6d23ad9c3dad73bb974d53a22f7d1ac5b7dea79d0b0","location":"","comment":"4"}]}')},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":1561651,"consensus":"poa","finality":null}],"bootstrapNodes":[{"ip":"51.141.78.53","port":30303,"id":"011f758e6552d105183b1761c5e2dea0111bc20fd5f6422bc7f91e0fabbec9a6595caf6239b37feb773dddd3f87240d99d859431891e4a642cf2a0a9e6cbb98a","location":"","comment":"Upstream bootnode 1"},{"ip":"13.93.54.137","port":30303,"id":"176b9417f511d05b6b2cf3e34b756cf0a7096b3094572a8f6ef4cdcb9d1f9d00683bf0f83347eebdf3b81c3521c2332086d9592802230bf528eaf606a1d9677b","location":"","comment":"Upstream bootnode 2"},{"ip":"94.237.54.114","port":30313,"id":"46add44b9f13965f7b9875ac6b85f016f341012d84f975377573800a863526f4da19ae2c620ec73d11591fa9510e992ecc03ad0751f53cc02f7c7ed6d55c7291","location":"","comment":"Upstream bootnode 3"},{"ip":"52.64.155.147","port":30303,"id":"c1f8b7c2ac4453271fa07d8e9ecf9a2e8285aa0bd0c07df0131f47153306b0736fd3db8924e7a9bf0bed6b1d8d4f87362a71b033dc7c64547728d953e43e59b2","location":"","comment":"Upstream bootnode 4"},{"ip":"213.186.16.82","port":30303,"id":"f4a9c6ee28586009fb5a96c8af13a58ed6d8315a9eee4772212c1d4d9cebe5a8b8a78ea4434f318726317d04a3f531a1ef0420cf9752605a562cfe858c46e263","location":"","comment":"Upstream bootnode 5"},{"ip":"3.11.147.67","port":30303,"id":"a61215641fb8714a373c80edbfa0ea8878243193f57c96eeb44d0bc019ef295abd4e044fd619bfc4c59731a73fb79afe84e9ab6da0c743ceb479cbb6d263fa91","location":"","comment":"Ethereum Foundation bootnode"}]}')},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hardforks=void 0,t.hardforks=[["chainstart",r(702)],["homestead",r(703)],["dao",r(704)],["tangerineWhistle",r(705)],["spuriousDragon",r(706)],["byzantium",r(707)],["constantinople",r(708)],["petersburg",r(709)],["istanbul",r(710)],["muirGlacier",r(711)]]},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://eips.ethereum.org/EIPS/eip-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 December 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){e.exports=JSON.parse('{"name":"muirGlacier","comment":"HF to delay the difficulty bomb","eip":{"url":"https://eips.ethereum.org/EIPS/eip-2384","status":"Last Call"},"gasConfig":{},"gasPrices":{},"vm":{},"pow":{},"casper":{},"sharding":{}}')},function(e,t,r){"use strict";var n=r(14);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(42),i=r(89).subscriptions,o=r(48),a=r(92),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(14),i=r(715),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},u={spawn:n},f={lookup:n},c=r(716),h=r(313),d=r(729),l=r(731),p=r(732);e.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(e,t,r){"use strict";var n=r(717),i=r(720),o=r(150),a=r(721),s=r(722),u=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||u;var f=(t=t||{}).json?"json":"text",c=(t=o({responseType:f},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(718),o=r(150),a=r(719);function s(e,t){return t.encode?t.strict?i(e):encodeURIComponent(e):e}function u(e){var t=e.indexOf("?");return-1===t?"":e.slice(t+1)}function f(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=u,t.parse=f,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:f(u(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(!f){f=!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=u,e.exports.default=u,u.XMLHttpRequest=n.XMLHttpRequest||function(){},u.XDomainRequest="withCredentials"in new u.XMLHttpRequest?u.XMLHttpRequest:n.XDomainRequest,function(e,t){for(var r=0;r>>31),r=(p=e[9]^e[19]^e[29]^e[39]^e[49])^(u<<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^(f<<1|c>>>31),r=o^(c<<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=s^(h<<1|d>>>31),r=u^(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=f^(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],G=e[11]<<4|e[10]>>>28,Z=e[10]<<4|e[11]>>>28,P=e[20]<<3|e[21]>>>29,R=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,K=e[41]<<18|e[40]>>>14,C=e[2]<<1|e[3]>>>31,U=e[3]<<1|e[2]>>>31,v=e[13]<<12|e[12]>>>20,y=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,X=e[23]<<10|e[22]>>>22,j=e[33]<<13|e[32]>>>19,I=e[32]<<13|e[33]>>>19,fe=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,N=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,Y=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,T=e[45]<<29|e[44]>>>3,B=e[44]<<29|e[45]>>>3,A=e[6]<<28|e[7]>>>4,x=e[7]<<28|e[6]>>>4,ne=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,q=e[26]<<25|e[27]>>>7,F=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,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,E=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,oe=e[29]<<7|e[28]>>>25,ae=e[28]<<7|e[29]>>>25,D=e[38]<<8|e[39]>>>24,z=e[39]<<8|e[38]>>>24,M=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]=A^~E&P,e[11]=x^~O&R,e[20]=C^~N&q,e[21]=U^~L&F,e[30]=W^~G&J,e[31]=V^~Z&X,e[40]=te^~ne&oe,e[41]=re^~ie&ae,e[2]=v^~g&_,e[3]=y^~w&k,e[12]=E^~P&j,e[13]=O^~R&I,e[22]=N^~q&D,e[23]=L^~F&z,e[32]=G^~J&Y,e[33]=Z^~X&$,e[42]=ne^~oe&se,e[43]=ie^~ae&ue,e[4]=g^~_&M,e[5]=w^~k&S,e[14]=P^~j&T,e[15]=R^~I&B,e[24]=q^~D&H,e[25]=F^~z&K,e[34]=J^~Y&Q,e[35]=X^~$&ee,e[44]=oe^~se&fe,e[45]=ae^~ue&ce,e[6]=_^~M&b,e[7]=k^~S&m,e[16]=j^~T&A,e[17]=I^~B&x,e[26]=D^~H&C,e[27]=z^~K&U,e[36]=Y^~Q&W,e[37]=$^~ee&V,e[46]=se^~fe&te,e[47]=ue^~ce&re,e[8]=M^~b&v,e[9]=S^~m&y,e[18]=T^~A&E,e[19]=B^~x&O,e[28]=H^~C&N,e[29]=K^~U&L,e[38]=Q^~W&G,e[39]=ee^~V&Z,e[48]=fe^~te&ne,e[49]=ce^~re&ie,e[0]^=a[n],e[1]^=a[n+1]},u=function(e){return function(t){var r;if("0x"===t.slice(0,2)){r=[];for(var a=2,u=t.length;a>2]|=t[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(e.start=m-f,e.block=u[c],m=0;m>2]|=i[3&m],e.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];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:u(256),keccak512:u(512),keccak256s:u(256),keccak512s:u(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 u=r.webkitRelativePath;n[u.slice(u.indexOf("/")+1)]={type:"text/plain",data:s},++o===i&&t(n)}else if("file"===e){var f=r.webkitRelativePath;t({type:mimetype.lookup(f),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,u=e.request,f=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(U(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?N(t):t,method:"POST"};u("".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),f={method:"PUT",headers:{"Content-Type":n.type},body:n.data};return new Promise((function(e,t){u(s,f,(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)}}}},M=function(e){return function(t){return A(e)({"":t})}},S=function(e){return function(r){return t.readFile(r).then((function(t){return M(e)({type:a.lookup(r),data:t})}))}},A=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))}))}},x=function(e){return function(r){return t.readFile(r).then(_(e))}},E=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(A(e))}}},O=function(e){return function(t){if("data"===t.pick)return d.data().then(_(e));if("file"===t.pick)return d.file().then(M(e));if("directory"===t.pick)return d.directory().then(A(e));if(t.path)switch(t.kind){case"data":return x(e)(t.path);case"file":return S(e)(t.path);case"directory":return E(e)(t.defaultFile)(t.path)}else{if(t.length||"string"==typeof t)return _(e)(t);if(t instanceof Object)return A(e)(t)}return Promise.reject(new Error("Bad arguments"))}},P=function(e){return function(t){return function(r){return B(e)(t).then((function(n){return n?r?w(e)(t)(r):y(e)(t):r?g(e)(t)(r):b(e)(t)}))}}},R=function(e,t){var i=n.platform().replace("win32","windows")+"-"+("x64"===n.arch()?"amd64":"386"),o=(t||s)[i],a=f+o.archive+".tar.gz",u=o.archiveMD5,c=o.binaryMD5;return r.safeDownloadArchived(a)(u)(c)(e)},j=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,u=e.dataDir,f=e.ensApi,c=e.privateKey,h=0,d=n(e.binPath,["--bzzaccount",a||c,"--datadir",u,"--ens-api",f]),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)}))},I=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()}))}))},T=function(e){return _(e)("test").then((function(e){return"c9a99c7d326dcc6316f32fe2625b311f6dc49a175e6877681ded93137d3569e7"===e})).catch((function(){return!1}))},B=function(e){return function(t){return b(e)(t).then((function(e){try{return!!JSON.parse(U(e)).entries}catch(e){return!1}}))}},C=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}},U=function(e){return c.toString(c.fromUint8Array(e))},N=function(e){return c.toUint8Array(c.fromString(e))},L=function(e){return{download:function(t,r){return P(e)(t)(r)},downloadData:C(b(e)),downloadDataToDisk:C(g(e)),downloadDirectory:C(y(e)),downloadDirectoryToDisk:C(w(e)),downloadEntries:C(m(e)),downloadRoutes:C(v(e)),isAvailable:function(){return T(e)},upload:function(t){return O(e)(t)},uploadData:C(_(e)),uploadFile:C(M(e)),uploadFileFromDisk:C(M(e)),uploadDataFromDisk:C(x(e)),uploadDirectory:C(A(e)),uploadDirectoryFromDisk:C(E(e)),uploadToManifest:C(k(e)),pick:d,hash:h,fromString:N,toString:U}};return{at:L,local:function(e){return function(t){return T("http://localhost:8500").then((function(r){return r?t(L("http://localhost:8500")).then((function(){})):R(e.binPath,e.archives).onData((function(t){return(e.onProgress||function(){})(t.length)})).then((function(){return j(e)})).then((function(e){return t(L("http://localhost:8500")).then((function(){return e}))})).then(I)}))}},download:P,downloadBinary:R,downloadData:b,downloadDataToDisk:g,downloadDirectory:y,downloadDirectoryToDisk:w,downloadEntries:m,downloadRoutes:v,isAvailable:T,startProcess:j,stopProcess:I,upload:O,uploadData:_,uploadDataFromDisk:x,uploadFile:M,uploadFileFromDisk:S,uploadDirectory:A,uploadDirectoryFromDisk:E,uploadToManifest:k,pick:d,hash:h,fromString:N,toString:U}}}])})); //# 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 317e2f1531d..51e74c1dfc3 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/safe-buffer/index.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///(webpack)/buildin/global.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:///./node_modules/process/browser.js","webpack:///../src.ts/index.ts","webpack:///./packages/web3-eth-accounts/node_modules/safe-buffer/index.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./packages/web3-utils/lib/index.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./packages/web3-eth-accounts/node_modules/elliptic/lib/elliptic/utils.js","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:///./packages/web3-eth-accounts/node_modules/elliptic/node_modules/bn.js/lib/bn.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/bn.js/lib/bn.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/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:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./packages/web3-core-promievent/lib/index.js","webpack:///./packages/web3-core-subscriptions/lib/index.js","webpack:///./node_modules/hash.js/lib/hash.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:///../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/brorand/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/@babel/runtime/helpers/defineProperty.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/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:///./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/minimalistic-crypto-utils/lib/utils.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:///../src.ts/addresses.ts","webpack:///../src.ts/bignumbers.ts","webpack:///../src.ts/hashes.ts","webpack:///../src.ts/strings.ts","webpack:///./node_modules/@ethersproject/signing-key/lib.esm/elliptic.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:///./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:///../../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/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/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/hmac-drbg/lib/hmac-drbg.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","copyProps","SafeBuffer","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","instance","Constructor","_defineProperties","props","descriptor","protoProps","staticProps","Function","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","args","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","setTimeout","defer","throttle","options","timeout","previous","later","leading","now","throttled","clearTimeout","trailing","cancel","debounce","immediate","debounced","callNow","wrap","wrapper","compose","after","times","before","once","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","noop","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","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","version","versions","on","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","_getPrototypeOf","setPrototypeOf","getPrototypeOf","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","stripHexPrefix","utf8ToHex","stringToHex","fromUtf8","toAscii","fromAscii","toWei","fromWei","padLeft","leftPad","padRight","rightPad","toTwosComplement","isBloom","isUserEthereumAddressInBloom","isContractAddressInBloom","isTopic","isTopicInBloom","isInBloom","compareBlockNumbers","bnA","bnB","subClass","superClass","assertThisInitialized","webpackPolyfill","deprecate","paths","children","equal","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","parseHex4Bits","parseHexByte","lowerBound","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","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","decode","encodingLength","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","MD5","RIPEMD160","sha","Base","alg","asn1","bignum","constants","decoders","encoders","Reporter","DecoderBuffer","EncoderBuffer","Node","isHexPrefixed","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","ripemd","hmac","sha1","sha256","sha224","sha384","sha512","ripemd160","core","Net","randomBytes","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","curve","curves","ec","eddsa","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","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","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","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","Rand","generate","_rand","getBytes","getByte","crt","priv","blinds","getr","blinder","modulus","publicExponent","unblinder","blind","blinded","prime1","prime2","qinv","coefficient","exponent1","m2","exponent2","pre","PresetCurve","short","edwards","isInfinity","defineCurve","lambda","basis","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","symbols","implementation","badArrayLike","isCallableMarker","fnToStr","reflectApply","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","isIndirect","isDirect","base36","asBn","ib","toAddress","fromAddress","padded","fromBban","bban","countryCode","institution","identifier","isValid","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","toBigNumber","other","throwFault","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","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","K","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","seed","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","disconnect","_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","nonce","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","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","naiveFallback","globalThis","__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","decimals","createCommonjsModule","basedir","commonjsRequire","minimalisticAssert","utils_1$1","assert$1","inherits_browser","assert$2","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","short_1","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","curve_1","curves_1","crash","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","V","entropy","entropyEnc","nonceEnc","pers","persEnc","hmacDrbg","_hmac","kmac","reseed","addEnc","assert$3","KeyPair","pub","_importPrivate","privEnc","_importPublic","pubEnc","fromPublic","fromPrivate","getPublic","getPrivate","derive","verify","assert$4","Signature","_importDER","recoveryParam","Position","place","octetLen","rmPadding","constructLength","octets","slen","toDER","backHalf","assert$5","EC","nh","keyPair","keyFromPrivate","keyFromPublic","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","ns1","kp","kpX","canonical","signature$1","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","EC$1","sha1_K","SHA1","SHA224","SHA384","Kh","E","Ah","Bh","Dh","Eh","rh","sh","inner","outer","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","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","_pub","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","secret","getPrime","front","getPrivateKey","getGenerator","_hashType","_tag","_signType","sig","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curveId","ecSign","dsaSign","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","EDDSA","pointClass","keyFromSecret","hashInt","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pubBytes","privBytes","getSecret","_R","_Rencoded","_Sencoded","Sencoded","toBytes","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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I,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,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,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,GAAG,IAAI,IAAI,IAA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,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,QAGpB1qG,EAAQ22D,MAAQz1D,OAAOwpG,OAAO,CAC5BmuB,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,mBAGV74H,EAAQ42D,eAAiB11D,OAAOwpG,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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EACA,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,sEAINvjB,IAAK,CACH/Z,IAAK,EACLs9B,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,mEACA,oEAEF,CACE,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EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAE1F,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,EAAM,EAAM,EAAM,GAAM,GAAM,EAAM,EAAM,GAAM,IAAM,GAC1F,IAAM,GAAM,EAAM,EAAM,EAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC1F,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAC1F,GAAM,EAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAC1F,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAC1F,EAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAC1F,IAAM,IAAM,EAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAC1F,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAC1F,IAAM,IAAM,GAAM,GAAM,GAAM,EAAM,EAAM,EAAM,IAAM,GAAM,EAAM,GAAM,EAExE,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC1F,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC1F,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAAM,EAC1F,EAAM,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,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,sEAINvjB,IAAK,CACH/Z,IAAK,EACLs9B,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,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,oEAE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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 = 198);\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","/* 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 (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","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","/*\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","// 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","\"use strict\";\nimport { concat, hexlify } from \"@ethersproject/bytes\";\nimport { nameprep, toUtf8Bytes } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nconst Zeros = new Uint8Array([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]);\nconst Partition = new RegExp(\"^((.*)\\\\.)?([^.]+)$\");\nexport function isValidName(name) {\n try {\n const comps = name.split(\".\");\n for (let i = 0; i < comps.length; i++) {\n if (nameprep(comps[i]).length === 0) {\n throw new Error(\"empty\");\n }\n }\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function namehash(name) {\n /* istanbul ignore if */\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid address - \" + String(name), \"name\", name);\n }\n let result = Zeros;\n while (name.length) {\n const partition = name.match(Partition);\n const label = toUtf8Bytes(nameprep(partition[3]));\n result = keccak256(concat([result, keccak256(label)]));\n name = partition[2] || \"\";\n }\n return hexlify(result);\n}\nexport function id(text) {\n return keccak256(toUtf8Bytes(text));\n}\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\nexport function hashMessage(message) {\n if (typeof (message) === \"string\") {\n message = toUtf8Bytes(message);\n }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n//# sourceMappingURL=index.js.map","/* 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 _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;","/*\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 stripHexPrefix: utils.stripHexPrefix,\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","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;","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","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","'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 var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\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 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 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 { 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","(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 if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\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 this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\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 parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\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 // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\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 this.strip();\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","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","(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","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","'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}","module.exports = require(\"regenerator-runtime\");\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","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","/*\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 var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\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 (j = 0; j < repr.length; j++) {\n 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 l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\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 var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n 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 (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 (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 (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (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 (j = 0; j < len; j++) {\n var z = tmp[j];\n 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 (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\";\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 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 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;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\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 = reflectApply\n\t? function isCallable(value) {\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (typeof value === 'function' && !value.prototype) { return true; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (typeof value === 'function' && !value.prototype) { return true; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\treturn strClass === fnClass || strClass === genClass;\n\t};\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 _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","(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 * Remove 0x prefix from string\n *\n * @method stripHexPrefix\n * @param {String} str to be checked\n * @returns {String}\n */\nvar stripHexPrefix = function (str) {\n if (str !== 0 && isHex(str))\n return str.replace(/^(-)?0x/i, '$1');\n return str;\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 stripHexPrefix: stripHexPrefix,\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\";\nconst utils = require('web3-utils');\nconst BigNumber = require('bn.js');\nconst leftPad = function (string, bytes) {\n let 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 */\nconst iso13616Prepare = function (iban) {\n const A = 'A'.charCodeAt(0);\n const 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 const 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 */\nconst mod9710 = function (iban) {\n let remainder = iban;\n let 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 */\nclass Iban {\n constructor(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 */\n static toAddress(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 */\n static toIban(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 */\n static fromAddress(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 const asBn = new BigNumber(address, 16);\n const base36 = asBn.toString(36);\n const 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 */\n static fromBban(bban) {\n const countryCode = 'XE';\n const remainder = mod9710(iso13616Prepare(countryCode + '00' + bban));\n const 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 */\n static createIndirect(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 */\n static isValid(iban) {\n const i = new Iban(iban);\n return i.isValid();\n }\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 */\n isValid() {\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 /**\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 */\n isDirect() {\n return this._iban.length === 34 || this._iban.length === 35;\n }\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 */\n isIndirect() {\n return this._iban.length === 20;\n }\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 */\n checksum() {\n return this._iban.substr(2, 2);\n }\n ;\n /**\n * Should be called to get institution identifier\n * eg. XREG\n *\n * @method institution\n * @returns {String} institution identifier\n */\n institution() {\n return this.isIndirect() ? this._iban.substr(7, 4) : '';\n }\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 */\n client() {\n return this.isIndirect() ? this._iban.substr(11) : '';\n }\n ;\n /**\n * Should be called to get client direct address\n *\n * @method toAddress\n * @returns {String} ethereum address\n */\n toAddress() {\n if (this.isDirect()) {\n const base36 = this._iban.substr(4);\n const asBn = new BigNumber(base36, 36);\n return utils.toChecksumAddress(asBn.toString(16, 20));\n }\n return '';\n }\n ;\n toString() {\n return this._iban;\n }\n ;\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 regardless.\n *\n */\nimport _BN from \"bn.js\";\nvar BN = _BN.BN;\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}\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\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 (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n }\n else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\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// value should have no prefix\nexport function _base36To16(value) {\n return (new BN(value, 36)).toString(16);\n}\n// value should have no prefix\nexport function _base16To36(value) {\n return (new BN(value, 16)).toString(36);\n}\n//# sourceMappingURL=bignumber.js.map","'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 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 = Object.assign({}, 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 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 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 if (typeof provider.request === 'function') { // EIP-1193 provider\n this.provider.on('message', function (payload) {\n if (payload && payload.type === 'eth_subscription' && payload.data) {\n const data = payload.data;\n if (data.subscription && _this.subscriptions.has(data.subscription)) {\n _this.subscriptions.get(data.subscription).callback(null, data.result);\n }\n }\n });\n }\n else { // legacy provider subscription event\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 }\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 const disconnect = function disconnect(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: Remove close once the standard allows it\n this.provider.on('close', disconnect);\n this.provider.on('disconnect', disconnect);\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 === undefined)\n options = {};\n // If options !== undefined, don't blow out existing data\n if (options.fromBlock === undefined)\n options = { ...options, fromBlock: 'latest' };\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 var i\n for (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(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\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","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\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\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\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